Wie kann ich überspringen einer iteration von einer `foreach` - Schleife?
In Perl kann ich überspringen einer foreach (oder irgendein loop) iteration mit einem next;
Befehl.
Gibt es eine Möglichkeit zum überspringen einer iteration und der Sprung zur next-Schleife in C#?
foreach (int number in numbers)
{
if (number < 0)
{
//What goes here to skip over the loop?
}
//otherwise process number
}
- Mitteilung an die user mit Ihren schlechten input ist genauso wichtig wie das überspringen es!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du willst:
Hier mehr über die
weiter
keyword.Update: In Reaktion auf Brians follow-up-Frage in den Kommentaren:
Einen
continue
immer für den nächsten umschließenden Rahmen, so dass Sie nicht verwenden können, es zu brechen, aus der äußeren Schleife. Wenn eine Bedingung wie die, die entsteht, Sie würden tun müssen, etwas komplizierter, je nach genau das, was Sie wollen, wiebreak
aus der inneren Schleife, danncontinue
auf der äußeren Schleife. Sehen Sie sich hier die Dokumentation über diebreak
keyword. Diebreak
C# - Schlüsselwort ist ähnlich dem Perl -last
Stichwort.Auch in Betracht ziehen, Dustin ' s Vorschlag, einfach herausfiltern von Werten, die Sie nicht Bearbeiten möchten, vorher:
goto
ist tatsächlich nützlich für die situation, die @Brian zu Fragen. Fügen Sie ein label wienextArray:
am unteren Ende der äußeren Schleife, und danngoto nextArray;
wenn Sie möchten, überspringen Sie es.Anderen Ansatz zum filtern mit LINQ, bevor die Schleife ausgeführt wird:
Könnten Sie auch flip-if-test:
Ein weiterer Ansatz ist die Verwendung von linq ist:
Wenn Sie möchten, überspringen Sie die ersten in einer Reihe von Elementen.
Oder verwenden Sie
.SkipWhere
wenn Sie möchten geben Sie eine Bedingung für das überspringen.Können Sie die
weiter
- Anweisung.Beispiel:
Verwenden Sie die continue-Anweisung: