【发布时间】:2012-11-04 09:21:31
【问题描述】:
是否存在用于 yield 返回 Enumerable 中所有项目的标准模式?
我发现我的一些代码反映了以下模式:
public IEnumerable<object> YieldReturningFunction()
{
...
[logic and various standard yield return]
...
foreach(object obj in methodReturningEnumerable(x,y,z))
{
yield return obj;
}
}
明确使用 foreach 循环只是为了向我返回可枚举的代码气味的结果。
显然,我可以通过显式构建一个 Enumerable 并将每个标准 yield return 的结果添加到它以及添加 methodReturningEnumerable 的结果范围来放弃使用 yield return 增加了我的代码的复杂性。这将是不幸的,因此我希望存在一种更好的方法来管理收益回报模式。
【问题讨论】:
-
你要求
yield foreach,它不存在。 -
Yield Return Many?的可能重复
标签: c# ienumerable design-patterns yield-return