左結合を表現するためにLINQjoin ... into
とはどのように機能しますか?.DefaultIfEmpty()
評価されるのは 1 回だけですか.DefaultIfEmpty()
、それともn回ですか?
LINQ to Objects について話していると仮定するとDefaultIfEmpty
、結果の要素ごとに 1 回評価されます。結合の「左」部分に一致する値のグループであるシーケンスで評価されます。したがって、次の場合:
from x in foo
join y in bar into z
let g = z.DefaultIfEmpty()
select new { x, g.Count() }
x
次に、値ごとに が呼び出されますDefaultIfEmpty
。空でないシーケンスの場合、値が渡されるだけです。空のシーケンスの場合、代わりにデフォルト値が (1 回) 返されます。
詳細については、Edulinq のブログ記事を参照してください。