Continuer dans bien que l'intérieur foreach
Dans le code C# suivant extrait
J'ai un " while
"en boucle à l'intérieur d'un' foreach
" en boucle et je souhaite pour passer à l'élément suivant dans 'foreach
' lorsqu'une certaine condition se produit.
foreach (string objectName in this.ObjectNames)
{
//Line to jump to when this.MoveToNextObject is true.
this.ExecuteSomeCode();
while (this.boolValue)
{
//'continue' would jump to here.
this.ExecuteSomeMoreCode();
if (this.MoveToNextObject())
{
//What should go here to jump to next object.
}
this.ExecuteEvenMoreCode();
this.boolValue = this.ResumeWhileLoop();
}
this.ExecuteSomeOtherCode();
}
'continue
"serait de passer au début de la" while
'boucle pas le" foreach
" en boucle.
Est qu'il y a un mot-clé à utiliser, ici, ou devrais-je simplement utiliser goto qui je n'aime pas vraiment.
Vous devez vous connecter pour publier un commentaire.
Suivants devraient faire l'affaire
Utiliser le mot-clé break. Qui permettra de sortir de la boucle while et continuer l'exécution à l'extérieur. Puisque vous n'avez pas de quoi après tout, il boucle autour de l'élément suivant dans la boucle foreach.
En fait, en regardant votre exemple de plus près, vous voulez être en mesure de l'avance pour la boucle sans quitter la alors que. Vous ne pouvez pas le faire avec une boucle foreach, mais vous pouvez décomposer une boucle foreach pour ce qu'il fait automatise. Dans .NET, une boucle foreach est effectivement rendu comme une .GetEnumerator() appel sur l'objet IEnumerable (qui votre ce.ObjectNames objet).
La boucle foreach est essentiellement ceci:
Une fois que vous avez cette structure, vous pouvez appeler l'énumérateur.MoveNext() dans ta boucle while pour passer à l'élément suivant. Ainsi, votre code devient:
La
break;
mot-clé d'une sortie de boucle:Utilisation
goto
.(Je suppose que les gens seront en colère avec cette réponse, mais je crois vraiment que c'est plus lisible que toutes les autres options.)
Vous pouvez utiliser "break;" pour sortir de l'intime while ou foreach.