【问题标题】:Sorting lists by date and then order by latest按日期排序列表,然后按最新排序
【发布时间】:2010-01-06 18:22:35
【问题描述】:

我有一个列表,想先按日期排序,然后先按最新日期排序。

下面的代码按日期排序:

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

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

然后我如何按最晚日期优先排序(目前先按最旧日期排序)? 谢谢

【问题讨论】:

    标签: c# sorting list


    【解决方案1】:

    只需更改从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));
    

    【讨论】:

    • @Jason p1 和 p1 是什么,你能给出完整的 p1 和 p2 定义代码吗?
    • p1p2 是 lambda 表达式中的参数;它们类似于方法参数。就好像我已经定义了int f(SimplifiedFeedItem p1, SimplifiedFeedItem p2) { return -p1.PublishDate.CompareTo(p2.PublishDate); },但是 lambda 表达式允许我们内联。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 2021-09-30
    • 2021-09-18
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多