gpt4 book ai didi

c# - 如何在第一个枚举器中激活另一个枚举器

转载 作者:行者123 更新时间:2023-11-30 14:00:15 24 4
gpt4 key购买 nike

我有两个独立的枚举器操作。

一个可以独立运行,另一个依赖于第一个运行。

我觉得这样做会很聪明:

public IEnumerator<IResult> DoStuffIndependently()
{
yield return this;
yield return that;
}

public IEnumerator<IResult> DoStuffBeforeSometimes()
{
yield return AffectThis;
yield return AffectThat;

yield return DoStuffIndependently();
}

这行不通,通过 foreach 也行不通。我不想自己逐步完成所有事情,我猜有一种非常简单的方法可以做到这一点。

最佳答案

一个方法是或者一个迭代器 block (yield return 等),xor一个常规方法(return ETC)。不可能两者兼而有之。因此,要使用另一个迭代器,您必须对其进行迭代 - 即

yield return AffectThis;
yield return AffectThat;
using(var iter = DoStuffIndependently()) {
while(iter.MoveNext()) yield return iter.Current;
}

或者,您可以使用 Concat 将两个现有 迭代器拼接在一起。

关于c# - 如何在第一个枚举器中激活另一个枚举器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11540025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com