IEnumerator <T>实现

kev*_*and 3 .net ienumerable

我有这个代码

public class SomeClass<T>: IEnumerable<T>
{
    public List<SomeClass<T>> MyList = new List<SomeClass<T>>();

    public IEnumerator<T> GetEnumerator()
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

如何从MyList中提取IEnumerator?

谢谢StackoverFlower ....

kem*_*002 8

这个:

public List<SomeClass<T>> MyList = new List<SomeClass<T>>();
Run Code Online (Sandbox Code Playgroud)

需要这样:

public List<T> MyList = new List<T>();
Run Code Online (Sandbox Code Playgroud)

那么,这应该工作:

public IEnumerator<T> Getenumerator ()
{
  foreach (var item in MyList){
     yield return item;}
}
Run Code Online (Sandbox Code Playgroud)

你不能拥有

List<SomeClass<T>>
Run Code Online (Sandbox Code Playgroud)

你拉取枚举器,因为你在接口中指定枚举器将返回一个可枚举项<T>.您也可以更改IEnumerable<T>

IEnumerable<SomeClass<T>>
Run Code Online (Sandbox Code Playgroud)

并将枚举器更改为

public IEnumerator<SomeClass<T>> Getenumerator ()
{
  foreach (var item in MyList){
     yield return item;}
}
Run Code Online (Sandbox Code Playgroud)