Python 的产量的 C# 类比

C# analogy for Python's yield from

如果我想将两个生成器合二为一

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# 中做类似的事情?

不,yield return.

没有组合两个迭代器的语法糖

如果您只需要按顺序迭代它们,您可以使用 Enumerable.Concat,或者编写代码来迭代序列和 yield return 每个元素。