LINQ检查FirstOrDefault是否为null并使用它

Sha*_*ean 1 c# linq entity-framework

我正在编写一个在查询FirstOrDefault后使用的OrderBy查询,该查询应首先检查它是否为空,然后使用其中的一些数据.有没有比写这样更好的方法:

int count = db.Items.Count(i => 
          i.Assignments.OrderByDescending(a => 
                a.DateAssigned).FirstOrDefault() != null
          && 
          i.Assignments.OrderByDescending(a =>
                a.DateAssigned).FirstOrDefault().DateReturned == null)
Run Code Online (Sandbox Code Playgroud)

这段代码的作用是有些项目有很多分配,我按日期进行最新的分配,然后检查它是否存在,然后在属性(DateReturned)上运行条件.如你所见,这个查询很长,我的大多数查询看起来都像这样,我首先检查null然后使用它们的属性对它运行第二个查询.有没有更好的方法呢?

SLa*_*aks 8

只需打电话.Any(a => a.DateReturned == null)检查是否有任何符合条件的物品.

如果您只想查看最新的作业,请在.Take(1)之前添加.Any().