实现IEnumerable <t> </t>

时间:2010-07-05 09:05:39

标签: c# ienumerable

我有一个代码:

    public sealed class Sequence : IEnumerable<MyClass>
    {
        List<MyClass> _elements;

        public IEnumerator<MyClass> Getenumerator()
        {
            foreach (var item in _elements)
            {
                yield return item;
            }
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return this._elements.GetEnumerator();
        }
    }


// ....

Sequence s = new Sequence();

// ...
// filling s with some data
// ...

foreach(MyClass c in s)
{
   // some action
}

该代码不想编译。它没有想要编译。 使用泛型类型'System.Collections.Generic.IEnumerator'需要'1'类型参数

帮助我重写MyClass以支持枚举。

我尝试了几种组合,使用了谷歌。无处可用的Enumerable和IEnumerator的例子。

2 个答案:

答案 0 :(得分:3)

添加以下行:

using System.Collections;

您想使用System.Collections.IEnumerator,而不是System.Collections.Generic.IEnumerator<T>

答案 1 :(得分:0)

听起来你错过了一个using指令,因为IEnumerator(非一般类型)存在System.Collections,而不是System.Collections.Generic(这是using System.Collections; 默认情况下包含在每个源文件的顶部。)

所以只需定义:

{{1}}

ando你很高兴。