Bonjour,
J'ai une liste generic d'objet que j'aimerais trier du type List<User>.Sort().
Comment dois je faire ?
Merci
Bonjour,
J'ai une liste generic d'objet que j'aimerais trier du type List<User>.Sort().
Comment dois je faire ?
Merci
Bonjour topolino,
Je ne comprends pas vraiment ta demande.
Est-ce que ta liste est bien de type List<User> ? Si oui, sur quel critère veut tu la trier ? De manière ascendante ou descendante ?
Quelle version du framework utilises-tu ?
Je desire le trier sur le nom par exemple.
Je ne peux pas utiliser Ling et les lambda expression.
Je suis en c#2.0
Ok, avec un délégué anonyme et la méthode Sort ça devrait passer :
Je part du principe que la propriété Nom de User est de type string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 liste.Sort(new Comparison<User>(delegate(User user1,User user2) { return user1.Nom.CompareTo(user2.Nom); }));
Il faut implémenter un IComparer<User> :
Et pour l'utiliser, tu le passes en paramètre de la méthode Sort :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class UserComparer : IComparer<User> { public int Compare(User x, User y) { return string.Compare(x.Nom, y.Nom); } }
EDIT: Sinon la méthode de Paul avec un Comparison<User> est un pas mal aussi... C'est plus concis, mais la syntaxe est (un peu) plus compliquée je trouve
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 List<User> users = new List<User>(); ... users.Sort(new UserComparer());
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Merci à vous deux.
Je voulais un truc simple, car je n'avais pas envie de faire une class implementant icomparer et icomparable a chaque list d'objet que je dois creer, juste pour implementer une tri simple.
Merci à vous 2
Partager