我有一个自定义对象的类型化集合,其中有两个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();

最佳答案

您应该能够使用空合并运算符

OrderByDescending(item => item.ExpirationDate ?? item.ExpirationDateExtended)

08-25 23:42