Affichage des articles dont le libellé est C#. Afficher tous les articles
Affichage des articles dont le libellé est C#. Afficher tous les articles

mardi 30 septembre 2008

Trier et filtrer une liste en C#

Il fallait bien que ça arrive voilà c'est le premier (d'une longue série j'espère) : un article pour les geek de la programmation !

Aujourd'hui nous allons apprendre à trier une liste (youpi). Il y a encore de ça quelques temps, lorsque l'on souhaitait trier un tableau on employait les célèbres techniques de triage (trie à bulle, trie par sélection, trie par insertion pour ne citer qu'eux.) Ces algorithmes étaient ma foi fort pratique mais un peu long à écrire (plus d'info). Maintenant avec Microsoft .Net c'est fini ! On utilise une liste typé et dedans ya plein de jolies méthodes pour faire le boulot. On peut trier et filtrer en une seule ligne. La preuve en exemple :

Imaginons une classe Personne ayant un attribut "dateNaissance". On peut créer une liste de personne :

List maListe;
// On veut trier par date de naissance les personnes dans la liste :
maListe.Sort(delegate(Personne p1, Personne p2)
{
return p1.dateNaissance.CompareTo(p2.dateNaissance);
}

Et voilà votre liste de personne est maintenant triée par date de naissance. Imaginons maintenant que l'on souhaite récupérer toutes les personnes ayant plus de 70 ans :

List maListeDeVieux = maListe.FindAll(delegate(Personne p)
{ return p.age > 70; });

Plutôt simple non ?