我有一组DateTime?
个对象,我想对它们进行排序以在网页上呈现它们。问题是没有价值的那些似乎出现在列表的顶部,我希望它们显示在底部。
对DateTime?
数组进行排序的最佳方法是将底部显示没有设置值的项目。
所以不要这样:
我想要这个:
答案 0 :(得分:10)
您应该能够使用空合并运算符。例如:
var orderedDates = nullableDates.OrderBy(date => date ?? DateTime.MaxValue);
这将替换任何缺失(null)日期的最大值,将这些日期推送到排序序列的末尾。如果此日期可能是对象的一部分,您当然可以使用它来按对象的日期属性对序列进行排序。
var orderedFoos = foos.OrderBy(foo => foo.SomeDate ?? DateTime.MaxValue);
答案 1 :(得分:0)
var ordered = dates.OrderBy(x => x ?? DateTime.MaxValue);