W Perlu mogę pominąć iterację foreach (lub dowolnej pętli) za pomocą next;
polecenia.
Czy istnieje sposób na pominięcie iteracji i przejście do następnej pętli w C #?
foreach (int number in numbers)
{
if (number < 0)
{
// What goes here to skip over the loop?
}
// otherwise process number
}
Odpowiedzi:
Chcesz:
Oto więcej o tym
continue
słowie kluczowym .Aktualizacja: W odpowiedzi na dalsze pytanie Briana w komentarzach:
continue
Zawsze odnosi się do najbliższego zakresu okalającego, więc nie można go używać, aby wyrwać się z pętli peryferyjnych. Jeśli pojawi się taki stan, musisz zrobić coś bardziej skomplikowanego w zależności od tego, czego dokładnie chcesz, na przykładbreak
z pętli wewnętrznej, a następniecontinue
z pętli zewnętrznej. Zobacz tutaj dokumentacjębreak
słowa kluczowego .break
C # Hasło jest podobna do Perllast
hasła.Rozważ też skorzystanie z sugestii Dustina, aby po prostu odfiltrować wartości, których nie chcesz wcześniej przetwarzać:
źródło
goto
jest w rzeczywistości przydatne w sytuacji, o którą pyta @Brian. Dodaj etykietę, na przykładnextArray:
na dole zewnętrznej pętli, a następnie,goto nextArray;
gdy chcesz do niej przejść.Innym podejściem jest filtrowanie przy użyciu LINQ przed wykonaniem pętli:
źródło
Możesz także przerzucić test if:
źródło
źródło
Możesz użyć
continue
wyciągu.Na przykład:
źródło
Innym podejściem wykorzystującym linq jest:
Jeśli chcesz pominąć pierwszy z wielu elementów.
Lub użyj,
.SkipWhere
jeśli chcesz określić warunek pominięcia.źródło
Użyj instrukcji Continue:
źródło
Najłatwiej to zrobić, jak poniżej:
źródło