The compiler compiles a foreach
loop into something like a for
loop when the foreach
is used with an array. And the compiler compiles a foreach
loop into something like a while
loop when the foreach
is used with an IEnumerable
or IEnumerable<T>
. So does this mean foreach
is purely syntactic sugar
? Or is there anything sophisticated about it?
Does the CLR know about foreach
? Is there anything specifically designed for foreach
in the MSIL code?