DirectoryInfo枚举

Ash*_*lra 3 c# enumeration directoryinfo

在学习C#基础知识时,我已经了解到foreach可以在那些已实现IEnumerable接口的集合上运行.到目前为止一切都那么好但是今天遇到的时候DirectoryInfo我很困惑.

如果DirectoryInfo没有实现IEnumerable,那么它是如何foreach工作的?

DirectoryInfo[] dirListing = new DirectoryInfo(@"F:\eBook").GetDirectories();

foreach (DirectoryInfo dir in dirListing)
{
    Console.WriteLine(dir.Name);
}
Run Code Online (Sandbox Code Playgroud)

请告诉我.......

Ode*_*ded 10

您正在使用数组.

所有数组从派生Array抽象类,它确实实现IEnumerable.

来自MSDN上的数组(C#编程指南):

数组类型是从抽象基类型派生的引用类型Array.由于这种类型的工具IEnumerableIEnumerable<T>,你可以在C#中的所有阵列使用的foreach迭代.