C# перейти к следующему элементу в списке на основе оператора if в foreach

Я использую C#. У меня есть список. Я перебираю каждый элемент с помощью foreach. Внутри моего foreach У меня много if заявления проверять некоторые вещи. Если любой из этих if операторы возвращает false, то я хочу, чтобы пропустить этот элемент и перейти к следующему элементу в списке. Все!--3--> инструкции должны быть проигнорированы. Я попытался использовать перерыв, но перерыв выходит из всего foreach заявление.

это то, что я в настоящее время есть:

foreach (Item item in myItemsList)
{
   if (item.Name == string.Empty)
   {
      // Display error message and move to next item in list.  Skip/ignore all validation
      // that follows beneath
   }

   if (item.Weight > 100)
   {
      // Display error message and move to next item in list.  Skip/ignore all validation
      // that follows beneath
   }
}

спасибо

5 ответов


использовать continue; вместо break; чтобы ввести следующую итерацию цикла, не выполняя больше содержащегося кода.

foreach (Item item in myItemsList)
{
   if (item.Name == string.Empty)
   {
      // Display error message and move to next item in list.  Skip/ignore all validation
      // that follows beneath
      continue;
   }

   if (item.Weight > 100)
   {
      // Display error message and move to next item in list.  Skip/ignore all validation
      // that follows beneath
      continue;
   }
}

официальные документы здесь, но они не очень цвет.


попробуйте это:

foreach (Item item in myItemsList)
{
  if (SkipCondition) continue;
  // More stuff here
}

вы должны использовать:

continue;

на continue ключевое слово сделает то, что вы после. break выход из foreach цикл, поэтому вы захотите избежать этого.


использовать continue вместо break. :-)