2008-10-28 96 views
38

在c#(3.0或3.5,所以我們可以使用lambda表達式),有沒有一種按降序排列日期列表的優雅方法?我知道我可以做一個直接排序,然後扭轉整個事情,排序列表<DateTime>降序

docs.Sort((x, y) => x.StoredDate.CompareTo(y.StoredDate)); 
docs.Reverse(); 

但有沒有一個lambda表達式來做到這一步?

在上面的例子中,StoredDate是一個類型爲DateTime的屬性。

回答

69

雖然它是未經測試...

docs.Sort((x, y) => y.StoredDate.CompareTo(x.StoredDate)); 

應該是你原本的正好相反。

20
docs.Sort((x, y) => y.StoredDate.CompareTo(x.StoredDate)); 

應該做你想找的。

6
docs.Sort((x, y) => -x.StoredDate.CompareTo(y.StoredDate)); 

請注意減號。

+0

救過我的命:d – 2014-07-28 18:06:37

56

出了什麼問題:

docs.OrderByDescending(d => d.StoredDate); 
+0

作品與我:) – AshOoO 2012-04-07 08:14:52