Bonjour,
j’essaye de trier un arraylist qui contient 2 types d'objets différents (villa, usine qui sont 2 classes dérivées de la classe mère abstraite Batiment qu'elle a comme attributs proprietaire, adresse et surface), le problème c'est quand j’essaye de trier juste les villa selon la surface ça ne fonctionne pas correctement et je ne sais pas ou est le problème.
Voila l'extrait de code ou je fais le trie par surface :
au moment d'appel :
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
31
32
33
34 class TrierSurface : IComparer { public int Compare(object a, object b) { int res = 0; Batiment a1 = (Batiment)a; Batiment a2 = (Batiment)b; if (a1 is Villa && a2 is Villa) { if (a1.Surface > a2.Surface) { res = 1; } if (a1.Surface < a2.Surface) { res = -1; } if (a1.Surface == a2.Surface) { res = 0; } } return res; }
liste.Sort(new TrierSurface());
le contenu d'arraylist avant trie :
Dsty fr250 1600 AQW 160 140 26800 //Usine : proprietaire adresse surface...
Sir df5 500 9 True 750 //Villa
Zes w598 100 20 False 300 //Villa
Saoma szs987 1500 GFR 300 120 36000 //Usine
Ader az12 700 12 False 250 //Villa
Klot drb02 250 8 True 800 //Villa
arraylist après trie :
Zes w598 100 20 False 300 //Villa
Saoma szs987 1500 GFR 300 120 36000 //Usine
Sir df5 500 9 True 750 //Villa
Ader az12 700 12 False 250 //Villa
Klot drb02 250 8 True 800 //Villa
Dsty fr250 1600 AQW 160 140 26800 //Usine
Partager