Trier des chiffres

cs_saravana Messages postés 91 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 18 octobre 2007 - 12 juil. 2007 à 20:47
cs_saravana Messages postés 91 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 18 octobre 2007 - 13 juil. 2007 à 18:51
bonjour a tous j'ai une listbox dans lequel jajoute des chiffres la listbox est sur sorted=true mais il ne trie pas bien les chiffres
listbox


4                                             4
456                                         55
55                                            88
777                                          456
88                                           777

5 réponses

cs__Syl_ Messages postés 66 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 25 février 2008 2
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.

Dis nous ce que ca donne !

Bonne fin de journée

_Syl_
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
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.

Julien.
0
cs_saravana Messages postés 91 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 18 octobre 2007
13 juil. 2007 à 13:33
dabord merci de votre reponse, larraylist donne le meme resultat, je voudrais savoir comment fonctionne le comparer merci
++
0
cs__Syl_ Messages postés 66 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 25 février 2008 2
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_
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_saravana Messages postés 91 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 18 octobre 2007
13 juil. 2007 à 18:51
jutlise un textbox c directement du string
liste.add(textbox1.text)
merci de la reponse
++
0
Rejoignez-nous