我有一个类型化的自定义对象集合,它有两个 DateTime?属性、ExpirationDate 和 ExpirationDateExtended。我正在尝试根据这些属性从该集合中获取最新信息。通常,对于一个属性,我只使用 OrderByDescending 方法并获取第一个属性。这在下面进行了演示。
但是,我想做的是,如果 ExpirationDate 属性有值(不为空),则按 ExpirationDate 属性排序 (OrderByDescending),但是如果它没有值(空),则排序 (OrderByDescending) ) 通过 ExpirationDateExtended 属性。
在下面,myCollection 变量表示我的自定义对象的集合。
var latestExpirationDate = myCollection
.Where(item => item.ExpirationDate.HasValue)
OrderByDescending(item => item.ExpirationDate)
.Select(item => item.ExpirationDate)
.FirstOrDefault();
请您参考如下方法:
您应该能够使用空合并运算符
OrderByDescending(item => item.ExpirationDate ?? item.ExpirationDateExtended)
