En Perl, je peux ignorer une itération foreach (ou n'importe quelle boucle) avec une next;
commande.
Existe-t-il un moyen de sauter une itération et de passer à la boucle suivante en C #?
foreach (int number in numbers)
{
if (number < 0)
{
// What goes here to skip over the loop?
}
// otherwise process number
}
Réponses:
Tu veux:
Voici plus sur le
continue
mot - clé .Mise à jour: En réponse à la question de suivi de Brian dans les commentaires:
Un
continue
s'applique toujours à la portée englobante la plus proche, vous ne pouvez donc pas l'utiliser pour sortir de la boucle la plus externe. Si une telle condition survient, vous devrez faire quelque chose de plus compliqué en fonction de ce que vous voulez exactement, commebreak
de la boucle intérieure, puiscontinue
de la boucle extérieure. Voir ici pour la documentation sur lebreak
mot - clé . Lebreak
mot clé C # est similaire aulast
mot clé Perl .En outre, pensez à prendre la suggestion de Dustin pour filtrer simplement les valeurs que vous ne souhaitez pas traiter à l'avance:
la source
goto
sont en fait utiles pour la situation à propos de laquelle @Brian demande. Ajoutez une étiquette commenextArray:
au bas de la boucle externe, puisgoto nextArray;
lorsque vous souhaitez y accéder.Une autre approche consiste à filtrer à l'aide de LINQ avant l'exécution de la boucle:
la source
Vous pouvez également retourner votre test if:
la source
la source
Vous pouvez utiliser l'
continue
instruction.Par exemple:
la source
Une autre approche utilisant linq est:
Si vous souhaitez ignorer le premier élément d'un certain nombre d'éléments.
Ou utilisez
.SkipWhere
si vous souhaitez spécifier une condition de saut.la source
Utilisez l'instruction continue:
la source
La façon la plus simple de le faire est comme ci-dessous:
la source