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