foreach循环如何在c#即MSIL中工作?

Dot*_*mer 2 .net php c# foreach loops

可能重复:
foreach循环如何在C#中工作?

就像经典迭代语句一样,for,while或do-while,is foreach loop is a new loop statment in c#?in other languages such as php

要么

在幕后,它将我们的代码转换为for,while或do-while循环.

Rom*_*ier 8

foreach结构相当于:

IEnumerator enumerator = myCollection.GetEnumerator();
try
{
   while (enumerator.MoveNext())
   {
       object current = enumerator.Current;
       Console.WriteLine(current);
   }
}
finally
{
   IDisposable e = enumerator as IDisposable;
   if (e != null)
   {
       e.Dispose();
   }
}
Run Code Online (Sandbox Code Playgroud)

请注意,此版本是非通用版本.编译器可以处理IEnumerator<T>.