In Perl kann ich eine foreach-Iteration (oder eine beliebige Schleifeniteration) mit einem next;
Befehl überspringen .
Gibt es eine Möglichkeit, eine Iteration zu überspringen und zur nächsten Schleife in C # zu springen?
foreach (int number in numbers)
{
if (number < 0)
{
// What goes here to skip over the loop?
}
// otherwise process number
}
Antworten:
Sie wollen:
Hier erfahren Sie mehr über das
continue
Schlüsselwort .Update: Als Antwort auf Brians Folgefrage in den Kommentaren:
A
continue
gilt immer für den nächstgelegenen umschließenden Bereich, sodass Sie ihn nicht verwenden können, um aus der äußersten Schleife auszubrechen. Wenn eine solche Bedingung auftritt, müssen Sie etwas Komplizierteres tun, je nachdem, was Sie genau möchten, z. B.break
von der inneren Schleife und danncontinue
von der äußeren Schleife. Hier finden Sie die Dokumentation zumbreak
Schlüsselwort . Dasbreak
Schlüsselwort C # ähnelt demlast
Schlüsselwort Perl .Nehmen Sie auch Dustins Vorschlag an, nur Werte herauszufiltern, die Sie nicht vorher verarbeiten möchten:
quelle
goto
ist tatsächlich nützlich für die Situation, nach der @Brian fragt. Fügen Sie eine Beschriftung hinzu, z. B.nextArray:
am unteren Rand der äußeren Schleife, und dann,goto nextArray;
wenn Sie dorthin springen möchten.Ein anderer Ansatz besteht darin, mit LINQ zu filtern, bevor die Schleife ausgeführt wird:
quelle
Sie können Ihren if-Test auch umdrehen:
quelle
quelle
Sie können die
continue
Anweisung verwenden.Zum Beispiel:
quelle
Ein anderer Ansatz mit linq ist:
Wenn Sie den ersten in einer Reihe von Elementen überspringen möchten.
Oder verwenden
.SkipWhere
Sie, wenn Sie eine Bedingung für das Überspringen angeben möchten.quelle
Verwenden Sie die continue-Anweisung:
quelle
Der einfachste Weg, dies zu tun, ist wie folgt:
quelle