Я не понимаю, почему метод расширения List<T>.ForEach()
реализует цикл for
под капотом. Это открывает возможность модификации коллекции. Обычный foreach
в этом случае выдаст исключение, поэтому наверняка ForEach()
должен реагировать так же?
Если вы ДОЛЖНЫ изменить коллекцию по какой-либо причине, то, конечно, вы должны вручную перебирать коллекцию в цикле for
?
Кажется, здесь есть некоторое семантическое противоречие между foreach
и List<T>.ForEach()
.
Я что-то упускаю?