按时间排序日期时间列表

时间:2013-08-06 01:42:27

标签: c# list sorting datetime lambda

我有一个日期时间列表,如果可能,我想使用lambda表达式对其进行排序。

我的清单:

6/19/1979 8:00:00 AM
5/5/1980 7:00:00 PM
10/20/1982 5:00:00 PM
1/4/1984 6:00:00 AM

输出应按以下顺序排列:

1/4/1984 6:00:00 AM 
6/19/1979 8:00:00 AM
10/20/1982 5:00:00 PM
5/5/1980 7:00:00 PM

5 个答案:

答案 0 :(得分:37)

简单地说,OrderBy TimeOfDay

var list = dateList.OrderBy(x => x.TimeOfDay).ToList(); 
// ToList added in response to comment.

答案 1 :(得分:5)

只有在所有日期相同的情况下才能使用以上内容,如果日期也不同,您应该执行以下操作...

var sortedDates = dates.OrderByDescending(x => x);

或者不想使用,或者不知道Linq那么你可以去追随......

static List SortAscending(List list)
{
list.Sort((a, b) => a.CompareTo(b));
return list;
}

static List SortDescending(List list)
{
list.Sort((a, b) => b.CompareTo(a));
return list;
}

答案 2 :(得分:0)

var result=dates.OrderBy(d=>d-d.Date);

答案 3 :(得分:0)

使用此解决方案

list<DateTime> YourList=new  list<DateTime> ();
.
.
.
YourList.OrderByDescending(x=>x.Date).ThenByDescending(x=>x.TimeOfDay).ToList()   

答案 4 :(得分:0)

list.Sort((a, b) => a.CompareTo(b));其中list是List变量。