Wie kann ich foreach
in C # aus einer Schleife ausbrechen, wenn eines der Elemente die Anforderung erfüllt?
Beispielsweise:
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:
- gibt es in C # nichts Vergleichbares?Antworten:
Alternativ, wenn Sie einige andere Dinge tun müssen, nachdem Sie den Gegenstand gefunden haben:
quelle
bool found = callFunctionInFirstCodeSnipper(list); // do stuff
Verwenden Sie
break;
und dies verlässt die foreach-Schleifequelle
Sie können explizite Schleifen vermeiden, indem Sie die LINQ-Route verwenden:
quelle
Contains("ok")
.Contains
, Sie iterieren über eineICollection<T>
.Any
würde auf alles funktionieren, was vom Typ istIEnumerable<T>
, und in diesem Fall gibt die Frage nicht explizit an, über welche Art von Sammlung sie iteriert (aList
ist jedoch eine ziemlich faire Vermutung).Sollte den Trick machen. Die break-Anweisung beendet nur die Ausführung der Schleife, während die return-Anweisung offensichtlich die gesamte Funktion beendet. Nach Ihrer Frage zu urteilen, möchten Sie möglicherweise die Rückgabe true verwenden. Aussage.
quelle
Sie können verwenden,
break
welche aus der nächsten umschließenden Schleife herausspringen, oder Sie können einfach direktreturn true
quelle
Verwenden Sie die Anweisung 'break'. Ich finde es witzig, dass die Antwort auf Ihre Frage buchstäblich in Ihrer Frage liegt! Eine einfache Google-Suche hätte Ihnen übrigens die Antwort geben können.
quelle
wie wäre es mit:
Das sollte den Trick machen, wenn Sie nur nach einem "OK" suchen und die Antwort zurückgeben möchten ...
quelle
Es ist keine direkte Antwort auf Ihre Frage, aber es gibt eine viel einfachere Möglichkeit, das zu tun, was Sie wollen. Wenn Sie mindestens .NET 3.5 oder höher verwenden. Es heißt Enumerable.Contains
quelle
quelle
Entweder kehren Sie direkt aus der Schleife zurück:
Oder verwenden Sie
break
:In Ihrem Fall ist es jedoch möglicherweise besser, Folgendes zu tun:
quelle
quelle
$
ist keine gültige C # -Syntax.var
ein perfekt gültiges C #