C# .Net - Tri d'une ArrayList sur la propriété d'un objet

2010-03-16

Pour un projet, j'ai eu besoin de trier une ArrayList d'objets Genome par une propriété particulière (pour moi, une note que je donnais aux genomes). J'ai mis pas mal de temps à trouver la bonne solution, et elle était en fait tellement simple que je vous la partage : Commencons par implémenter l'interface IComparable à notre classe :


public class Genome : IComparable {
...
Ensuite, il faut redéfinir la méthode CompareTo, de la façon suivante :

public int CompareTo(object obj)
{
     Genome Compare = (Genome)obj;
     int result = this.note.CompareTo(Compare.note);
     if (result == 0)
            result = this.note.CompareTo(Compare.note);
     return result;
}
Prenez soin de modifier la propriété demandée pour la comparaison ainsi que le nom de votre classe. Ensuite, il ne vous reste plus qu'à appeller la méthode Sort sur votre ArrayList pour la trier :

monArrayList.Sort();
Et voilà, votre ArrayList est triée :)

Comments