📅  最后修改于: 2023-12-03 15:13:53.072000             🧑  作者: Mango
在C#编程中,我们需要经常利用列表/List集合来存储和操作数据。当需要按照日期时间进行排序时,可以按照以下步骤进行:
利用List
List<DateTime> dateList = new List<DateTime>();
dateList.Add(DateTime.Now.AddDays(-1));
dateList.Add(DateTime.Now.AddDays(-5));
dateList.Add(DateTime.Now.AddDays(-3));
dateList.Sort();
此时,dateList中的数据就会按照时间先后顺序进行排序。
利用LINQ表达式可以方便的对列表数据进行排序。下面是按照时间先后顺序进行排序的代码:
List<DateTime> dateList = new List<DateTime>();
dateList.Add(DateTime.Now.AddDays(-1));
dateList.Add(DateTime.Now.AddDays(-5));
dateList.Add(DateTime.Now.AddDays(-3));
var sortedDates = dateList.OrderByDescending(d => d.Ticks);
通过OrderByDescending操作符,在lambda表达式中指定按照Ticks进行倒序排序,即可得到按照时间先后顺序进行排序后的数据。
利用Comparer
List<DateTime> dateList = new List<DateTime>();
dateList.Add(DateTime.Now.AddDays(-1));
dateList.Add(DateTime.Now.AddDays(-5));
dateList.Add(DateTime.Now.AddDays(-3));
dateList.Sort(new DateTimeComparer());
public class DateTimeComparer : IComparer<DateTime>
{
public int Compare(DateTime x, DateTime y)
{
return y.Ticks.CompareTo(x.Ticks);
}
}
通过实现IComparer
以上三种方法都可以实现对列表中的时间数据进行排序。可以根据具体需求选择一种最合适的方法来使用。