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.