Сортировка списка DateTime по времени

у меня есть список datetime, и я хотел бы отсортировать его, используя лямбда-выражение, если это возможно.

мой список:

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 ответов


просто OrderBy на TimeOfDay:

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

выше будет работать, только если все даты одинаковы, в случае, если дата также отличается, Вы должны сделать следующее...

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;
}

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

используйте это решение

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

list.Sort((a, b) => a.CompareTo(b)); где список-это список переменных.