Руководство по использованию ключевого слова «yield» в C# для итераций и ленивых вычислений

Чтобы использовать ключевое слово yieldв C#, вы можете выполнить следующие действия:

  1. Определите метод, который возвращает IEnumerableили IEnumerator. Ключевое слово yieldможно использовать только в методах, возвращающих эти типы.

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

  3. При желании вы можете использовать оператор yield Break, чтобы преждевременно завершить итерацию.

Вот пример, иллюстрирующий использование yieldв C#:

public IEnumerable<int> GenerateNumbers()
{
    yield return 1;
    yield return 2;
    yield return 3;
    yield return 4;
    yield return 5;
}
public void Main()
{
    foreach (int number in GenerateNumbers())
    {
        Console.WriteLine(number);
    }
}

В приведенном выше примере метод GenerateNumbersиспользует оператор yield returnдля возврата последовательности чисел. Когда метод вызывается в цикле foreach, каждое число выводится на консоль.

Использование yieldпозволяет создавать и возвращать последовательности элементов, не сохраняя их все в памяти одновременно. Это может быть полезно при работе с большими наборами данных или когда вы хотите генерировать элементы «на лету».