2
あなたが拡張メソッドにこのLINQクエリを変換するために私を助けてもらえ:LINQ拡張メソッドを使用した外部結合
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 == null ? String.Empty : subpet.Name) };
クエリは左外側についてMSDN pageから来る参加します。
私はすでにこれをしなかった:
var result = people.join(pets, x, y => y.Owner, (x, y) => {
x.FirstName,
PetName = y == null ? String.Empty : y.Name
}).ToList();
しかし、私はDefaultIfEmpty()
で何をすべきかわかりませんか?
他の解決方法で説明したようにDefaultIfEmpty()
を追加すると、CS0746が無効になります。匿名型メンバー宣言子が無効です。匿名型メンバーは、メンバー割り当て、単純な名前またはメンバーアクセスで宣言する必要があります。
と、次のように行うことができますか?ジョインはクエリの構文とメソッドの構文で非常にクリーンなので、パフォーマンス面で利点はありません。 –