【发布时间】:2014-06-06 04:21:08
【问题描述】:
我有一个自定义对象的类型化集合,它有两个 DateTime?属性,ExpirationDate 和 ExpirationDateExtended。我正在尝试根据这些属性从该集合中获取最新信息。通常,对于一个属性,我只需使用 OrderByDescending 方法并获取第一个属性。这在下面得到证明。
但是,我想要做的是,如果 ExpirationDate 属性有一个值(不为 null),则按 ExpirationDate 属性排序(OrderByDescending),但是如果它没有值(null),则排序(OrderByDescending ) 通过 ExpirationDateExtended 属性。
在下面,myCollection 变量表示我的自定义对象的集合。
var latestExpirationDate = myCollection
.Where(item => item.ExpirationDate.HasValue)
OrderByDescending(item => item.ExpirationDate)
.Select(item => item.ExpirationDate)
.FirstOrDefault();
【问题讨论】: