2010-01-06 199 views
1

我有一个列表,并希望按日期排序,然后先订购最近的日期。按日期排序列表,然后按最新顺序排列

按日期排序下面的代码:

allFeeds.Sort(delegate(SimplifiedFeedItem p1, SimplifiedFeedItem p2) 
        { return p1.PublishDate.CompareTo(p2.PublishDate); }); 

        allFeeds.ForEach(delegate(SimplifiedFeedItem p) 
        { // display list}); 

我怎么那么它的最新日期顺序第一(它的排序由最早的日期目前第一)? 感谢

回答

3

只是改变从DateTime.CompareTo返回符号:

allFeeds.Sort(delegate(SimplifiedFeedItem p1, SimplifiedFeedItem p2) 
       { return -p1.PublishDate.CompareTo(p2.PublishDate); }); 

您可以使用lambda表达式这个吸尘器:

allFeeds.Sort((p1, p2) => -p1.PublishDate.CompareTo(p2.PublishDate)); 
+0

IM喜欢它。谢谢! – test 2010-01-06 18:28:38

+0

不客气。 – jason 2010-01-06 18:31:17

+0

@Jason p1和p1是什么,你可以用p1和p2定义完整的代码吗? – 2014-07-14 07:38:23

相关问题