2013-05-28 49 views
1

我有一個DateTime?對象的數組,我想對它們進行排序以在網頁上呈現它們。問題是沒有價值的人似乎出現在名單的頂部,我希望他們在底部出現。在C#中,按日期排序的最佳方法是什麼?並在最後有空的?

DateTime?的數組進行排序的最佳方式是什麼,將會使沒有值集的項目出現在底部。

所以不是這樣的:

  1. [無值]
  2. 2013年1月1日
  3. 2013年1月15日

我想這一點:

  1. 揚1,2013
  2. 2013年1月15日
  3. [無值]
+0

你有什麼碼? – FrostyFire

回答

10

您應該能夠利用空合併運算符。例如:

var orderedDates = nullableDates.OrderBy(date => date ?? DateTime.MaxValue); 

這將取代任何缺失(空)日期的最大值,將它們推到排序序列的末尾。如果這個日期大概是一個對象的一部分,那麼你當然可以用它來通過該對象的日期屬性來排序一個序列。

var orderedFoos = foos.OrderBy(foo => foo.SomeDate ?? DateTime.MaxValue); 
0
var ordered = dates.OrderBy(x => x ?? DateTime.MaxValue); 
相關問題