C# аналогия для Python доходности от - PullRequest
0 голосов
/ 23 января 2020

Если я хотел бы объединить два генератора в один

def gen1():
    for i in range(5):
        yield i

def gen2():
    for i in 'asdf':
        yield i

def gen():
    yield from gen1()
    yield from gen2()

или сделать какой-нибудь рекурсивный генератор

def gen(arg):
    if arg == 1:
        yield from gen(0)
    for i in range(10):
        yield i

в Python Я буду использовать yield from. Есть ли альтернатива, как делать подобные вещи в C#?

1 Ответ

0 голосов
/ 23 января 2020

Нет, нет синтаксического сахара для объединения двух итераторов для yield return.

. Вы можете использовать Enumerable.Concat, если вам просто нужно выполнить их итерацию в последовательности, или написать код для итерации последовательности и yield return каждый элемент.

...