【问题标题】:C# analogy for Python's yield fromC# 类比 Python 的 yield from
【发布时间】:2020-05-09 03:56:23
【问题描述】:

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

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

【问题讨论】:

    标签: c# python generator yield-return


    【解决方案1】:

    不,没有语法糖来组合yield return 的两个迭代器。

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

    【讨论】:

      猜你喜欢
      • 2014-01-10
      • 2023-01-25
      • 2016-06-01
      • 2018-04-29
      • 2014-11-16
      • 2019-01-06
      • 2020-05-25
      • 2021-11-30
      • 2021-11-26
      相关资源
      最近更新 更多