我有一个代码:
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的例子。
答案 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你很高兴。