Ienumerable对象在.net中的基本作用是什么?

时间:2010-06-14 06:44:08

标签: c# .net interface

我对Ienumerable对象一无所知.Ienumarble接口在.net中的作用是什么?请告诉我它是否在建? .net中的每个类都自动实现Ienumarable接口吗?为什么需要实现可消除的接口?它包含的方法是什么?他们扮演什么角色。请详细解释。

1 个答案:

答案 0 :(得分:1)

简而言之,IEnumerable公开了一个枚举器,它允许支持对非泛型集合的简单迭代。

它基本上允许对集合进行foreach循环,即:

foreach (Control control in this.Controls)
{
   // Do something
}

在您自己的班级中使用IEnumable所需的唯一方法是GetEnumerator(),它返回IEnumerator

您返回的IEnumerator必须是实现以下方法的类:

void Reset();
object Current();
bool MoveNext();

IEnumerator类的基本示例,取自here

private class ClassEnumerator : IEnumerator
{
    private ClassList _classList;
    private int _index;

    public ClassEnumerator(ClassList classList)
    {
        _classList = classList;
        _index = -1;
    }

    #region IEnumerator Members

    public void Reset()
    {
        _index = -1;
    }

    public object Current
    {
        get
        {
            return _classList._students[_index];
        }
    }

    public bool MoveNext()
    {
        _index++;
        if (_index >= _classList._students.Count)
            return false;
        else
            return true;
    }

    #endregion
}