web-dev-qa-db-fra.com

Trier la liste DateTime par heure

J'ai une liste de dates et je voudrais la trier si possible avec une expression lambda. 

Ma liste:

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

La sortie devrait être dans cet ordre:

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
11
user2138160

OrderBy la TimeOfDay:

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

Ci-dessus ne fonctionnera que si toutes les dates sont identiques. Si les dates sont également différentes, procédez comme suit: 

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

ou bien vous ne voulez pas utiliser, ou ne connaissez pas Linq, alors vous pouvez aller pour suivre ..

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;
}
5
susant
var result=dates.OrderBy(d=>d-d.Date);
0
Robert McKee

list.Sort((a, b) => a.CompareTo(b)); Où list est votre variable de liste.

0
Dilip Kumar

utiliser cette solution

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