C# 具有多个日期字段的项目的订单集合
我有一个项目集合,其中每个项目都有以下字段:C# 具有多个日期字段的项目的订单集合,c#,asp.net,linq,C#,Asp.net,Linq,我有一个项目集合,其中每个项目都有以下字段:Title、DateCreated和DateUpdated 我想对这些项目进行排序,以便首先显示最近的项目,其中最近的项目是刚刚创建或更新的项目 所以,如果我在三秒钟前创建了Item2,它将显示在顶部。但如果我接着去更新Item1,它现在会显示在顶部,因为Item1的DateUpdated比Item2的DateCreated更新 有没有一种方法可以基于两个日期以这种方式订购集合?创建项目时,只需将DateCreated和DateUpdated都设置为创
Title
、DateCreated
和DateUpdated
我想对这些项目进行排序,以便首先显示最近的项目,其中最近的项目是刚刚创建或更新的项目
所以,如果我在三秒钟前创建了Item2,它将显示在顶部。但如果我接着去更新Item1,它现在会显示在顶部,因为Item1的DateUpdated
比Item2的DateCreated
更新
有没有一种方法可以基于两个日期以这种方式订购集合?创建项目时,只需将
DateCreated
和DateUpdated
都设置为创建日期。然后,您只需按日期更新
订购即可。如果我没有弄错,那么您将使用自定义数据进行收集。因此,您必须使用IComparable接口才能实现它。这是参考资料“http://msdn.microsoft.com/en-us/library/system.icomparable.aspx “无需实施i可比较!DateTime
类在内部实现了IComparable接口!他将按日期时间排序!这很理想,但不幸的是,我使用的是一个已有数千条记录的旧应用程序,我无法控制更改代码以在创建时设置DateCreated
和DateUpdated
。但答案很好:)
var newList =
list.OrderByDescending(s=>Math.Max(s.DateCreated.Ticks,s.DateUpdated.Ticks));