【发布时间】:2010-11-08 11:24:22
【问题描述】:
我见过的所有在 C# 方法中使用 yield return x; 的示例都可以通过返回整个列表以相同的方式完成。在这些情况下,使用yield return 语法与返回列表相比有什么好处或优势吗?
另外,yield return 会在哪些类型的场景中使用,而您不能只返回完整列表?
【问题讨论】:
-
你为什么首先假设有“一个列表”?如果没有怎么办?
-
@Eric,我想这就是我要问的。你什么时候不会有一个列表。到目前为止,文件流和无限序列是答案中的两个很好的例子。
-
如果你有这个列表,那么,当然,只要返回它;但是如果您在方法内部构建一个列表并返回它,那么您可以/应该使用迭代器。一次产出一件物品。有很多好处。
-
自从 5 年前提出这个问题以来,我确实学到了很多东西!
-
拥有
yields 的最大优势是您不必再命名另一个中间变量。
标签: c# iterator yield-return