Коллекция | Collection

Коллекция | Collection

Коллекция - это класс, содержащий массив/список однотипных элементов. Для перебора коллекции в foreach требуется реализовать интерфейсы IEnumerable, IEnumerator.

Ключевое слово yield сообщает компилятору, что метод, в котором оно содержится, является блоком итератора.Для реализации поведения, определенного в блоке итератора, компилятор создает класс. В блоке итератора ключевое слово yield используется совместно с ключевым словом return для предоставления значения объекту перечислителя, например значения, возвращаемого в каждом цикле оператора foreach. Также ключевое слово yield используется вместе с ключевым словом break для обозначения конца итерации.

Оператор yield не может использоваться в анонимных методах.

public IEnumerator GetEnumerator()
{
    for (var i = 0; i < collection.Length; i++)
    {
        yield return collection[i];
    }
}

Реализация foreach методами реализованного интерфейса.

IEnumerator enumerator = collection.GetEnumerator();

while(enumerator.MoveNext())
{
    string element = enumerator as String;
    // user code //
}
foreach (string element in collection)
{
    // user code //
}

Подробнее про yield:

results for ""

    No results matching ""