Comment sortir d'une foreach
boucle en C # si l'un des éléments répond à l'exigence?
Par exemple:
foreach(string s in sList){
if(s.equals("ok")){
//jump foreach loop and return true
}
//no item equals to "ok" then return false
}
return "ok" in sList:
- n'y a-t-il pas quelque chose de comparable en C #?Réponses:
Alternativement, si vous devez faire d'autres choses après avoir trouvé l'élément:
la source
bool found = callFunctionInFirstCodeSnipper(list); // do stuff
Utilisez
break;
et cela quittera la boucle foreachla source
Vous pouvez éviter les boucles explicites en empruntant la route LINQ:
la source
Contains("ok")
.Contains
suppose que vous itérez sur un fichierICollection<T>
.Any
fonctionnerait sur tout ce qui est de typeIEnumerable<T>
, et dans ce cas, la question n'indique pas explicitement le type de collection sur laquelle elle itère (List
c'est une estimation assez juste).Devrait faire l'affaire. L'instruction break terminera simplement l'exécution de la boucle, tandis que l'instruction return terminera évidemment toute la fonction. À en juger par votre question, vous voudrez peut-être utiliser le retour vrai; déclaration.
la source
Vous pouvez utiliser
break
quels sauts hors de la boucle englobante la plus proche, ou vous pouvez simplementreturn true
la source
Utilisez l'instruction «break». Je trouve drôle que la réponse à votre question soit littéralement dans votre question! Au fait, une simple recherche sur Google aurait pu vous donner la réponse.
la source
que diriez-vous:
Cela devrait faire l'affaire si tout ce que vous voulez faire est de vérifier un "ok" et de renvoyer la réponse ...
la source
Ce n'est pas une réponse directe à votre question, mais il existe un moyen beaucoup plus simple de faire ce que vous voulez. Si vous utilisez .NET 3.5 ou version ultérieure, au moins. Il s'appelle Enumerable.
la source
la source
Soit vous revenez tout droit hors de la boucle:
Ou utilisez
break
:Cependant, dans votre cas, il pourrait être préférable de faire quelque chose comme ceci:
la source
la source
$
syntaxe C # n'est pas vraiment valide.var
est en fait un mot clé C # parfaitement valide, donc vous êtes bon