bonjour !
voila, j'aimerais trier une collection lesMatieres par ordre alphabetique sur son champs libMatiere.
j'ai créé le code suivant :
j'ai 2 problemes.
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 public void TriMatieres() { ArrayList TabTri = new ArrayList(); TabTri = GetListeMatieres(); int nbMatieres = GetNbMatieres(); int i, j; string nomObjet; for (i = 0; i <= (nbMatieres - 1); i++) { for (j = (nbMatieres - 1); j <= i + 1; j++) { if (((ClMatiere)TabTri[j]).GetLibMatiere() < ((ClMatiere)TabTri[i+1]).GetLibMatiere()) { ClMatiere Matiere1 = ((ClMatiere)TabTri[j]); ClMatiere Matiere2 = ((ClMatiere)TabTri[j-1]); ((ClMatiere)TabTri[j]) = Matiere2; ((ClMatiere)TabTri[j-1]) = Matiere1; } } } }
le premiere est que c# interdit de comparer 2 chaines par (<) alors qu'il m'est indispensable de savoir si une chaine est inferieur à une autre dans l'ordre alphabétique.
la deuxieme vient de ce morceau de code :
l'echange ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ClMatiere Matiere1 = ((ClMatiere)TabTri[j]); ClMatiere Matiere2 = ((ClMatiere)TabTri[j-1]); ((ClMatiere)TabTri[j]) = Matiere2; ((ClMatiere)TabTri[j-1]) = Matiere1;
pourriez-vous m'aider svp ?
merci![]()
Partager