支持 foreach 而不实现 IEnumerable 的示例

Gad*_*dam -1 c# ienumerable foreach

我正在查看这个博客,它解释了foreach无需实施IEnumerable. 但是没有深入到实现的细节。

我正在寻找如何在foreach不实施IEnumerable.

编辑:感谢@Sam I am 的评论,我得到了我想要的。(见下面我的回答)

Ser*_*rvy 5

这是一个根本没有实现IEnumerable或任何接口的类:

public class Foo 
{
    public IEnumerator<int> GetEnumerator()
    {
        yield return 1;
        yield return 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以foreach这样:

foreach (int n in new Foo())
    Console.WriteLine(n);
Run Code Online (Sandbox Code Playgroud)

这将打印:

1
2