cs__Syl_
Messages postés66Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention25 février 20082 13 juil. 2007 à 11:35
Bonjour,
Tu peux passer par une ArrayList intermédiaire qui contiendra tes chiffres
Ensuite tu fais taListe.Sort();
et tu remplis ta listbox à partir de l'ArrayList triée.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 13 juil. 2007 à 11:49
Salut,
Le problème est qu'il t'ajoute les chiffres dans la liste box en tant que String. Pour qu'il te les trie comme il faut, il faut rajouter des 0 au début des chiffres pour qu'ils aient tous le même nombre de chiffre. (4, 887 -> 004, 887)
Deuxième solution,
Je n'ai pas VS devant moi, mais il me semble que la listbox peut te proposer de mettre ton propre Comparer pour le sort non ? J'en suis un peu près sur... si tu ne vois pas je chercherai ce soir.
Dans ce cas, il te suffit de faire un comparer qui compare Int.Parse(x) et non x.
cs__Syl_
Messages postés66Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention25 février 20082 13 juil. 2007 à 16:54
Si l'Arraylist donne le même résultat c'est que comme l'a dit Julien tu rentres tes valeurs en string.
Comment ajoutes - tu les valeurs dans l'ArrayList ?
liste.Add(4); ou list.Add("4"); ?
la seconde façon de faire te rajoute des string donc le tri ne fonctionnera pas directement
tandis que la première ajoute des entiers et là le .Sort() doit fonctionner.
Sinon, c'est pas très propre mais tu peux toujours passer par une conversion (Convert.ToInt32(lavaleur)) avant d'ajouter l'élément dans la liste
Et puis y'aura la solution du comparer que Julien te fournieras ce soir apparement (ou que tu peux demander à Mister G ;)).(comparer qui peut aussi être passé en argument d'une surcharge de la méthode Sort de l'ArrayList)
Bonne journée
_Syl_
Vous n’avez pas trouvé la réponse que vous recherchez ?