【发布时间】:2016-11-30 16:53:58
【问题描述】:
我在课堂上实现了IEnumerator 接口。除了它永远不会返回MyListContainer 中的第一个元素之外,它工作得很好。只有剩下的。因此,为了尝试解决这个问题,我使用了以下方法:
public void Reset(){ EnumeratorPosition = -1; }
但它没有再次返回第一个结果。
关于如何解决此问题的任何建议?还是第一个元素是 foreach 的份额?
public bool MoveNext()
{
EnumeratorPosition++;
return (EnumeratorPosition < MyListContainer.Count);
}
public void Reset()
{ EnumeratorPosition = 0; }
public object Current
{
get { return MyListContainer[EnumeratorPosition]; }
}
public IEnumerator GetEnumerator()
{
return (IEnumerator)this;
}
【问题讨论】:
-
与其编写自己的枚举器,不如使用为您编写代码的yield return。或者 MyListContainer 可能已经实现了 IEnumerable。
标签: c# enumerator