【问题标题】:Order collection of items with multiple date fields具有多个日期字段的项目的订单集合
【发布时间】:2012-08-07 01:14:40
【问题描述】:

我有一个项目集合,其中每个项目都有以下字段:TitleDateCreatedDateUpdated

我想订购这些商品,以便首先显示最近的商品,其中最近的商品是刚刚创建或更新的商品。

因此,如果我在三秒前创建了 Item2,它将显示在顶部。但是如果我再去更新 Item1,它现在会显示在顶部,因为 Item1 的 DateUpdated 比 Item2 的 DateCreated 更新

有没有办法根据两个日期以这种方式订购收藏?

【问题讨论】:

    标签: c# asp.net linq


    【解决方案1】:
    var newList = 
          list.OrderByDescending(s=>Math.Max(s.DateCreated.Ticks,s.DateUpdated.Ticks));
    

    【讨论】:

      【解决方案2】:

      创建项目时,只需将DateCreatedDateUpdated 都设置为创建日期。然后您可以通过DateUpdated 订购。

      【讨论】:

      • 那将是理想的,但不幸的是,我正在使用一个已经有数千条记录的旧应用程序,并且我无法控制更改代码以同时设置 DateCreatedDateUpdated创建。但很好的答案:)
      【解决方案3】:

      如果我没记错,那么您正在为您的收藏使用自定义数据。所以你必须使用 IComparable 接口才能实现它。这是参考“http://msdn.microsoft.com/en-us/library/system.icomparable.aspx”

      【讨论】:

      • 不用实现IComparableDateTime类内部实现了IComparable接口!他要按DateTime排序!
      猜你喜欢
      • 2019-05-18
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      相关资源
      最近更新 更多