foreach é puramente “açúcar sintático”?

O compilador compila umforeach loop em algo como umfor quando oforeach é usado com uma matriz. E o compilador compila umforeach loop em algo como umwhile quando oforeach é usado com umIEnumerable ouIEnumerable<T>. Então, isso significaforeach é puramentesyntactic sugar? Ou há algo sofisticado sobre isso?

O CLR sabe sobreforeach? Existe algo projetado especificamente paraforeach no código MSIL?

questionAnswers(4)

yourAnswerToTheQuestion