web-dev-qa-db-fra.com

Liste de tri <DateTime> Décroissant

En c # (3.0 ou 3.5, donc on peut utiliser des lambdas), existe-t-il une manière élégante de trier une liste de dates par ordre décroissant? Je sais que je peux faire un tri direct, puis inverser le tout,

docs.Sort((x, y) => x.StoredDate.CompareTo(y.StoredDate));
docs.Reverse();

mais y a-t-il une expression lambda pour le faire en une seule étape?

Dans l'exemple ci-dessus, StoredDate est une propriété typée comme DateTime.

44
Chris Conway

Bien qu'il ne soit pas testé ...

docs.Sort((x, y) => y.StoredDate.CompareTo(x.StoredDate));

devrait être l'opposé de ce que vous aviez à l'origine.

77
Austin Salonen

Quel est le problème avec:

docs.OrderByDescending(d => d.StoredDate);
61
Scott Baker
docs.Sort((x, y) => y.StoredDate.CompareTo(x.StoredDate));

Devrait faire ce que vous cherchez.

20
jonnii
docs.Sort((x, y) => -x.StoredDate.CompareTo(y.StoredDate));

Notez le signe moins.

6
Tamas Czinege