Я бы объяснил это так: ForEach
- это метод , а не языковая функция . Конструкция C # foreach
- это особенность языка, на которой разрешены другие языковые конструкции break
и continue
.
Я также хотел бы отметить (не пытаясь судить, просто сделав наблюдение), что это хороший пример того, почему некоторые разработчики возражают против использования метода ForEach
: он действительно не экономит при наборе текста в этой простой В этом случае требуется больше перенаправления, чем необходимо, и в любом случае он не обладает всеми функциями foreach
.
По моему мнению, основной сценарий, в котором метод ForEach
имеет смысл, заключается в расширении IEnumerable<T>
- в конце цепочки вызовов метода. Мне кажется немного странным, что они добавили его в List<T>
.