C# : 高度な LINQ - サブクエリと左外部結合を使用する

1882 ワード

LINQ は、任意のデータ ソースのクエリを作成するための優れたツールですが、実行したいものを実行するための正しいコードを作成する方法がわからないことがあります.

遅かれ早かれこれを忘れてしまうと確信しているので、私は自分のためにこのブログを書いています:)

左外部結合



Perform left outer joins では、LINQ で左外部結合を記述する方法について詳しく説明しています.

ポイントは、intoDefaultIfEmpty() メソッドを使用することです.

var query = from person in people
   join pet in pets on person equals pet.Owner into gj
   from subpet in gj.DefaultIfEmpty()
   select new 
   {
       person.FirstName, 
       PetName = subpet?.Name ?? String.Empty 
   };


サブクエリ



サブクエリはより簡単です. new セクションと in セクションの両方でサブクエリを使用できます.クエリが長くなる場合は、サブクエリを別のクエリとして定義し、それをメイン クエリで使用することもできます.