@daniel, вы правы в том, что на самом деле перечислитель выдает ошибку, но в ответ на вопрос об OP, я надеялся показать, что есть фундаментальное различие в использовании foreach для цикла for, который будет вызывать ошибки в зависимости от того, как вы используете это.

лятор компилируетforeach петля в нечто вродеfor цикл, когдаforeach используется с массивом. И компилятор компилируетforeach петля в нечто вродеwhile цикл, когдаforeach используется сIEnumerable или жеIEnumerable<T>, Так значит ли этоforeach это чистоsyntactic sugar? Или в этом есть что-то сложное?

Знает ли CLR оforeach? Есть ли что-то специально предназначенное дляforeach в коде MSIL?

Ответы на вопрос(1)

Ваш ответ на вопрос