【C#】IEnumerable<T>インタフェースの実装
IEnumerable<T>インタフェースの実装
に記載の通り、IEnumerable<T>インタフェースは抽象メソッドGetEnumerator()を持っているため、IEnumerable<T>インタフェースを実装する際には、GetEnumerator()を実装する必要がある。
また、IEnumerator<T>を継承するとIEnumeratorも継承することになるため、IEnumeratorのメソッドも実装する必要がある。
internal class MyCollection<T>:IEnumerable<T>
{
private List<T> elems;
internal MyCollection(int num)
{
elems = new List<T>(num);
}
public IEnumerator<T> GetEnumerator()
{
foreach (var elem in elems) yield return elem;
}
public IEnumerator GetEnumerator()
{
return GetEnumerator();
}
}