Affichage des articles dont le libellé est liste. Afficher tous les articles
Affichage des articles dont le libellé est liste. 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 ?