Bonjour,
j'utilise la classe List<objet> du name spce System.Collections.Generic.
l'objet est caractériser par une valuer (de type entier par exemple)
je veux trier cette liste d'apres cette valeur.
Merci
Bonjour,
j'utilise la classe List<objet> du name spce System.Collections.Generic.
l'objet est caractériser par une valuer (de type entier par exemple)
je veux trier cette liste d'apres cette valeur.
Merci
Salut,
Dans ta classe Objet, tu implémente l'interface IComparable<Objet>
L'implémentation donnera ceci :
Tu fait ensuite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public int CompareTo(Objet other) { // Value est le nom de ta propriété servant à comparer, doit être d'un type qui implémente IComparable, mais si c'est un type de base (int, string, etc...) c'est ok return this.Value.CompareTo(other.Value); }et le tour est joué
Code : Sélectionner tout - Visualiser dans une fenêtre à part TaList.Sort(); // sans arguments
@+
Mais ce programme il me lève une exception.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 namespace nom { public class MaClasse : IComparer { double val; public int Compare(Object x, Object y) { double a=((MaClasse)x).val; double b=((MaClasse)y).val; if (a< b) return -1; if (a > b) return 1; return 0; }//fin compare public static void Main(String[] args) { MaClasse c=new MaClasse(); List<MaClasses> doc=new List<MaClasse>(); doc.Sort(); } } }
On doit deviner tout seul où est lancée l'exception?
Quelle exception ?
De toute façon, tu peux faire bcp plus simple, à moins que je n'ai pas bien saisi ton pb de départ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class MaClasse : IComparable<MaClasse> { double val; public int CompareTo(MaClasse other) { return this.val.CompareTo(other.val); }
C'est exactement ce que thelpi t'as dit...![]()
Partager