我正在寻找一种解决方案,以解决DefaultIfEmpty()
在 LINQ 外连接中使用时扩展方法不拾取空值的问题。
代码如下:
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),
});
在 List SummaryLosses 中,我希望将多年的数据加入到包含年份的子部分的“nets”表中。我假设 x 为空值时引发异常,因为 SummaryLosses 中的年份与网络中的年份不匹配会在分组列表中创建空值。
应该如何在这里检查空值?正如你所看到的,我试图检查 x 的属性是否为 null,但由于 x 为 null,这不起作用。
亲切的问候理查德