FirstOrDefault内联空检查

本文关键字:检查 FirstOrDefault | 更新日期: 2023-09-27 18:09:44

我有以下代码:

var result = new Collection<object>();
result.Add(
     list.Select(s => new
     {
          s.Name,
          Rating = s.Performance.OrderByDescending(o => o.Year).FirstOrDefault().Rating
     })
);

如果在Performance中没有发现记录,它会给我NullException,这是预期的,因为我试图从null值获得Rating属性,所以我的问题是如何设置null,如果FirstOrDefault()null,并获得Rating值,如果不是。

谢谢

FirstOrDefault内联空检查

这样做:

Rating = s.Performance.OrderByDescending(o => o.Year)
                      .Select(o => o.Rating)
                      .FirstOrDefault()

您可以使用Enumerable。DefaultIfEmpty方法

Rating = s.Performance.OrderByDescending(o => o.Year)
                      .Select(o => o.Rating)
                      .DefaultIfEmpty(0)
                      .First()