Você quer:
foreach (int number in numbers) // <--- go back to here --------+
{ // |
if (number < 0) // |
{ // |
continue; // Skip the remainder of this iteration. -----+
}
// do work
}
Aqui está mais sobre a continue
palavra - chave .
Atualização: em resposta à pergunta de acompanhamento de Brian nos comentários:
Você poderia esclarecer melhor o que eu faria se tivesse feito um aninhamento de loops e quisesse pular a iteração de um dos estendidos?
for (int[] numbers in numberarrays) {
for (int number in numbers) { // What to do if I want to
// jump the (numbers/numberarrays)?
}
}
A continue
sempre se aplica ao escopo envolvente mais próximo, portanto você não pode usá-lo para interromper o loop mais externo. Se surgir uma condição como essa, você precisará fazer algo mais complicado, dependendo exatamente do que deseja, como break
no loop interno e depois continue
no loop externo. Veja aqui a documentação sobre a break
palavra - chave . A break
palavra-chave C # é semelhante à last
palavra-chave Perl .
Além disso, considere usar a sugestão de Dustin para filtrar previamente os valores que você não deseja processar:
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.
}
}