Подтвердить что ты не робот

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

Я использую С#. У меня есть список предметов. Я прокручиваю каждый элемент с помощью foreach. Внутри моего foreach у меня есть много операторов if, проверяющих некоторые вещи. Если какой-либо из этих операторов if возвращает false, я хочу, чтобы он пропустил этот элемент и перешел к следующему элементу в списке. Все последующие инструкции if следует игнорировать. Я попытался использовать разрыв, но разрыв выходит из всего оператора 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
   }
}

Спасибо

4b9b3361

Ответ 1

Используйте 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;
   }
}

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

Ответ 2

Попробуйте следующее:

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

Ответ 3

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

continue;

Ответ 4

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

Ответ 5

Используйте continue вместо break.: -)