Enumerable 内のすべてのアイテムを返す yield の標準パターンはありますか?
以下のパターンを反映したコードを見つけることがよくあります。
public IEnumerable<object> YieldReturningFunction()
{
...
[logic and various standard yield return]
...
foreach(object obj in methodReturningEnumerable(x,y,z))
{
yield return obj;
}
}
Enumerable の結果を返すためだけに foreach ループを明示的に使用すると、コードの匂いがします。
Enumerable を明示的に作成し、各標準の yield return の結果をそれに追加し、methodReturningEnumerableの結果の範囲を追加することで、明らかにコードの複雑さを増す yield return の使用を放棄できます。これは残念なことです。利回りパターンを管理するためのより良い方法が存在することを願っていたからです。