Какова основная роль Ienumerable объекта в .net? - PullRequest
1 голос
/ 14 июня 2010

Я ничего не знаю об объекте Ienumerable. Какова роль интерфейса Ienumarble в .net? Подскажите пожалуйста, встроен ли он? Каждый класс в .net автоматически реализует интерфейс Ienumarable? почему существует необходимость реализовать интерфейс ienumerable? какие методы он содержит и какую роль они играют. Пожалуйста, объясните подробно.

1 Ответ

1 голос
/ 14 июня 2010

В двух словах, IEnumerable предоставляет перечислитель, который позволяет поддерживать простую итерацию для неуниверсальной коллекции.

Это в основном позволяет циклы foreach над коллекцией, т. Е .:

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

Единственный метод, который вам нужно реализовать для использования IEnumable в вашем собственном классе, это GetEnumerator(), который возвращает IEnumerator.

IEnumerator, который вы возвращаете, должен быть классом, который реализует следующие методы:

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

Базовый пример класса IEnumerator, взятый из здесь :

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...