Question similaire à celle-ci, mais en 2.0, nous voulons trier par un élément, puis par un autre. Nous voulons obtenir l'équivalent fonctionnel de SELECT * from Table ORDER BY x, y
Nous avons une classe qui contient un certain nombre de fonctions de tri, et nous n'avons aucun problème à trier par un élément. Par exemple :
public class MyClass {
public int x;
public int y;
}
List<MyClass> MyList;
public void SortList() {
MyList.Sort( MySortingFunction );
}
Et nous avons les éléments suivants dans la liste :
Unsorted Sorted(x) Desired
--------- --------- ---------
ID x y ID x y ID x y
[0] 0 1 [2] 0 2 [0] 0 1
[1] 1 1 [0] 0 1 [2] 0 2
[2] 0 2 [1] 1 1 [1] 1 1
[3] 1 2 [3] 1 2 [3] 1 2
Je pense que nous cherchons un moyen d'implémenter un tri stable, mais je suis heureux de prendre toutes les suggestions !
éditer :
OK, comme cela semble souvent être le cas, le fait de poser la question a libéré un blocage mental !
@nobugz - J'ai implémenté ceci juste avant de voir votre réponse ! Merci, c'est la façon de faire dans ce cas. Sauf que je n'utilise pas de méthodes anonymes, car j'ai plusieurs sortes différentes pour cette classe.
@Jonathan Holland - Si je dois ajouter une autre sorte, j'utiliserai quelque chose comme le vôtre !
@Bill The Lizard - ce lien MS m'a rafraîchi la mémoire !