Sposób bym go wytłumaczyć to: ForEach
jest metoda, a nie cecha język. Konstrukcja C# foreach
jest cechą języka, w którym dozwolony jest inny język, który jest konstruowany w postaci break
i continue
.
Chciałbym również zwrócić uwagę (nie próbując osądzić, po prostu zrobić obserwację), że jest to dobry przykład, dlaczego niektórzy programiści sprzeciwiam się stosowaniu metody ForEach
: to naprawdę nie zapisuje pisania w tym prostym przypadku , wymaga jeszcze jednego przekierowania, niż to konieczne, i mimo to nie ma całej funkcjonalności.
Moim zdaniem główny scenariusz, w którym metoda ForEach
ma sens, jest rozszerzeniem na IEnumerable<T>
- do umieszczenia na końcu łańcucha wywołań metod. Wydaje mi się (nieco) dziwne, że dodali ją do List<T>
.
Dobrze napisany przedłużenie ForEach powinny umożliwić powrót na false, jeśli chcesz go złamać. Ale nie mogę powiedzieć tego na pewno, ponieważ nie wiem, skąd masz swoje foreach. Jeśli napisałeś to sam, może to być dobra opcja. – Tesserex
Wygląda na to, że chcesz funkcji TakeWhile http://msdn.microsoft.com/en-us/library/bb534804%28v=VS.90%29.aspx – Juliet
Znalazłem lepszą odpowiedź tutaj: http://stackoverflow.com/questions/3145563/list-foreach-break –