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.
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.
Quel est le problème avec:
docs.OrderByDescending(d => d.StoredDate);
docs.Sort((x, y) => y.StoredDate.CompareTo(x.StoredDate));
Devrait faire ce que vous cherchez.
docs.Sort((x, y) => -x.StoredDate.CompareTo(y.StoredDate));
Notez le signe moins.