Bonjour,
J'ai une liste generic d'objet que j'aimerais trier du type List<User>.Sort().
Comment dois je faire ?
Merci
Version imprimable
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:
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:
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 trouveCode:
1
2
3 List<User> users = new List<User>(); ... users.Sort(new UserComparer());
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