У чому користь yield?

Приклад на С#.

Повертаємо колекцію за допомогою yield.

public static class Foo
{
    public static IEnumerable Test()
    {
        var rand = new Random().Next(1, 3);
        if (rand == 1)
            yield return 1;

        if (rand == 2)
            yield return 2;

        yield return 3;
        yield return "foo";
        yield return true;
    }
}

Приклад 2. Повертаємо колекцію за допомогою звичайного списка.

public static class Foo1
{
    public static IEnumerable Test()
    {
        var list = new List();
        var rand = new Random().Next(1, 3);
        if (rand == 1)
            list.Add(1);

        if (rand == 2)
            list.Add(2);

        list.Add(3);
        list.Add("foo");
        list.Add(true);

        return list;
    }
}

Результат рівнозначний, питання - навіщо тоді взагалі потрібен yield, якщо можна обійтися таким кодом? Або yield використовується там, де код з new List() з якихось причин неможливий?

Alex · 3 роки тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація