Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IEnumerator<T> Implementation

I have a this code

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

    public IEnumerator<T> GetEnumerator()
    {
        throw new NotImplementedException();
    }
}

How can I Extract a IEnumerator from MyList ?

Thanks StackoverFlower....

like image 985
kevin marchand Avatar asked Dec 17 '25 14:12

kevin marchand


2 Answers

This:

public List<SomeClass<T>> MyList = new List<SomeClass<T>>();

Needs to be this:

public List<T> MyList = new List<T>();

then, this should work:

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

You can't have a

List<SomeClass<T>>

that you pull the enumerator for, because you have specified in the interface that the enumerator will return an enumerable item of <T>. You can also change IEnumerable<T> to be

IEnumerable<SomeClass<T>>

and change the Enumerator to be

public IEnumerator<SomeClass<T>> Getenumerator ()
{
  foreach (var item in MyList){
     yield return item;}
}
like image 189
kemiller2002 Avatar answered Dec 19 '25 05:12

kemiller2002


The trivial option would be return MyList.GetEnumerator().

like image 24
Tordek Avatar answered Dec 19 '25 07:12

Tordek