Alex Rivera | Logout

Yield Return Many?

Asked 2010-10-03T23:28:53.597
84

I find myself foreach-ing over IEnumerables a lot just so that I can return each result. Is there a way to compress something like this

foreach (var subSelector in subSelectors)
{
    foreach (var node in FindSingle(context, subSelector))
        yield return node;
} 

To remove the inner foreach?

c#
Edit
Report

1 Answer

22

No, there isn't, unless you completely replace every yield return with a single return statement using LINQ.

For example:

return someSet
    .Concat(someOtherSet.SelectMany(s => FindSingle(context, s));
answered 2010-10-03T23:30:49.070

Your Answer