【发布时间】:2011-04-20 20:59:55
【问题描述】:
简单示例 - 您有一个返回 IEnumerable 的方法或属性,并且调用者在 foreach() 循环中对其进行迭代。您是否应该始终在您的 IEnumerable 方法中使用“yield return”?有没有理由不这样做?虽然我知道它可能并不总是必要,甚至“更好”(例如,它可能是一个非常小的集合),但有没有理由积极避免这样做?
让我想到这一点的代码是我编写的一个函数,与该线程中接受的答案非常相似 - How do I loop through a date range?
【问题讨论】:
-
如果你直接枚举一个预先存在的集合,你会增加大量的开销来获得一个小的绝缘好处(客户端代码不能转换结果来获取你的私人集合。)这通常是可以接受以提高可维护性,尽管在这种情况下它实际上会稍微增加代码复杂性。
-
Duplicate stackoverflow.com/questions/3969963/… 有不同的,可以说是更好的答案
标签: c# ienumerable yield-return