【发布时间】:2016-09-25 20:31:51
【问题描述】:
我有一个返回MyClass 列表的方法。在该方法中,我将MyClass 列表拆分为较小的块,例如 500 个元素。现在我想知道这是否可以与yield-statement 一起使用。目前我有这个代码。但是,我很好奇是否有一种方法可以在没有这个凌乱的第二个内部循环的情况下让全部返回。
IEnumerable<MyClass> DoSomething()
{
List<MyClass> myList = ...
foreach(var chunk in myList.Chunk(500)) // split the list in smaller lists
{
foreach(MyClass m in chunk) yield return m;
}
}
这当然可行,但我想知道我是否也可以使用yield 来延迟返回全部。
【问题讨论】:
-
Chunk是做什么的? -
它将列表拆分为列表列表
-
你能分享一下实现吗?
-
@TrevorPilley 当然,请参阅stackoverflow.com/questions/419019/…
-
重复是我已经担心的:这是不可能的。要么按照 Sean 的建议返回一个列表列表,要么迭代每一束的元素并将其返回。
标签: c# yield-return