Ответ 1
Вы хотите:
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
С# похоже на ключевое слово 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.
}
}