我们的自定义类的数组如何与foreach一起使用而不实现IEnumerable?

Fre*_*ood 2 .net c# ienumerable foreach

这个长标题已经包含了我的所有问题所以我只想举例说明

MyClass[] array
Run Code Online (Sandbox Code Playgroud)

如果没有实现IEnumerable接口的方法,这个数组如何与Foreach一起工作?

Dar*_*rov 11

Array实现IEnumerable.从文档引用:

在.NET Framework 2.0版中,Array类实现System.Collections.Generic.IList(T),System.Collections.Generic.ICollection(T)和System.Collections.Generic.IEnumerable(T)泛型接口.这些实现在运行时提供给数组,因此文档构建工具不可见.因此,通用接口不会出现在Array类的声明语法中,并且没有可通过将数组转换为通用接口类型(显式接口实现)来访问的接口成员的参考主题.将数组转换为其中一个接口时要注意的关键是添加,插入或删除元素的成员会抛出NotSupportedException.