如果想让自己的类可以在foreach中使用,是不是要建立两个类,一个实现IEnumerable,一个实现IEnumerator?
请给点示例

解决方案 »

  1.   

    不用,用yield return就成了。你要支持For Each的类实现一下IEnumerable<T>接口,然后再GetEnumerator()方法的实现里用yield return完成你的迭代器逻辑
      

  2.   

    其实1.1和2.0差不多.
    你只要继承IEnumerable,按TAB后自动会出来
    public IEnumerator GetEnumerator()
    {
    // TODO:  添加 geta.GetEnumerator 实现
    return null;
    }
    上面这个返回的值自动会变成IEnumerator 类型的。
    类照样使用foreach
      

  3.   

    GetEnumerator()中返回的这个类型要继承IEnumerable接口的吧?