Вы хотите:
foreach (int number in numbers) // <--- go back to here --------+
{ // |
if (number < 0) // |
{ // |
continue; // Skip the remainder of this iteration. -----+
}
// do work
}
Подробнее о ключевом слове continue
.
<Ч />
Обновление: В ответ на дополнительный вопрос Брайана в комментариях:
Не могли бы вы уточнить, что бы я делал, если бы я вложил в циклы и хотел пропустить итерацию одного из расширенных?
for (int[] numbers in numberarrays) {
for (int number in numbers) { // What to do if I want to
// jump the (numbers/numberarrays)?
}
}
A continue
всегда применяется к ближайшей ограждающей области, поэтому вы не можете использовать ее, чтобы вырваться из внешней петли. Если возникает подобное условие, вам нужно будет сделать что-то более сложное в зависимости от того, что именно вы хотите, например, break
из внутреннего цикла, затем continue
из внешнего цикла. Смотрите здесь документацию по ключевому слову break
. Ключевое слово break
C # аналогично ключевому слову Perl last
.
Также рассмотрите предложение Дастина просто отфильтровать значения, которые вы не хотите обрабатывать заранее:
foreach (var basket in baskets.Where(b => b.IsOpen())) {
foreach (var fruit in basket.Where(f => f.IsTasty())) {
cuteAnimal.Eat(fruit); // Om nom nom. You don't need to break/continue
// since all the fruits that reach this point are
// in available baskets and tasty.
}
}