Sobes.tech
Back to questions
Junior — Middle
72

Объясните принцип работы функции yield и как она используется при реализации итераторов в Python.

Answer from AI

sobes.tech AI

В C# ключевое слово yield используется для упрощения реализации итераторов. Оно позволяет методам возвращать элементы по одному, не создавая сразу всю коллекцию в памяти.

Когда метод содержит yield return, он становится итератором, который при каждом вызове возвращает следующий элемент последовательности и сохраняет своё состояние между вызовами.

Пример:

public IEnumerable<int> GetNumbers()
{
    yield return 1;
    yield return 2;
    yield return 3;
}

// Использование
foreach(var num in GetNumbers())
{
    Console.WriteLine(num);
}

Здесь метод GetNumbers возвращает числа по одному при каждой итерации. Это удобно для ленивой генерации последовательностей, экономит память и упрощает код по сравнению с ручной реализацией интерфейса IEnumerable и IEnumerator.