DefaultIfEmpty()
LINQ 外部結合で使用されたときに拡張メソッドが null 値を取得しないという問題の解決策を探しています。
次のようにコードします。
var SummaryLossesWithNets = (from g in SummaryLosses
join n in nets
on g.Year equals n.Year into grouping
from x in grouping.DefaultIfEmpty()
select new
{
Year = g.Year,
OEPGR = g.OccuranceLoss,
AEPGR = g.AggregateLoss,
OEPNET = ((x.OEPRecovery == null) ? 0 : x.OEPRecovery),
AEPNET = ((x.AEPRecovery == null) ? 0 : x.AEPRecovery),
});
リスト SummaryLosses には、年のサブ部分を含むテーブル 'nets' に結合したい何年にもわたるデータがあります。x が null 値である場合に例外がスローされます。これは、SummaryLosses の年数が nets の年数と一致しないと、グループ化リストに null 値が作成されるためだと思います。
ここでヌル値を確認するにはどうすればよいですか? ご覧のとおり、x のプロパティで null をチェックしようとしましたが、x が null であるため、これは機能しません。
敬具 リチャード