begin process at 2013 05 23 02:24:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Trier une liste


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Trier une liste

vendredi 12 octobre 2012 à 11:29:39 | Trier une liste

Rapakooti


Bonjour, j'ai une liste que est charger de manière "aléatoire", je voudrait trier cette liste alphabétiquement,je n'y arrive pas avec sort... y a t il une méthode?

Code C# :
 List<string> listeatelecharger = new List<string>();
 listeatelecharger.Add(saved.Value);
listeatelecharger.Sort;
ou 
listeatelecharger.Sort=true;


R A P A K O O T I
vendredi 12 octobre 2012 à 12:28:02 | Re : Trier une liste

thefolin

Bonjour Rapakooti



Regarde ici

Espérant que sa t'aide
vendredi 12 octobre 2012 à 13:13:47 | Re : Trier une liste

Rapakooti


Merci de votre réponse , j avais vu ce tuto mais je vois pas comment l adapté à mon cas je veux juste faire un "sort" sur ma liste

R A P A K O O T I
vendredi 12 octobre 2012 à 14:56:07 | Re : Trier une liste

whismeril

Bonjour, string est déjà Icomparer, donc sort marche tout seul:

Code C# :
            List<string> toto = new List<string>();
            toto.Add("bb");
            toto.Add("ab");
            toto.Add("ba");
            toto.Add("aa");

            toto.Sort();



Whismeril
vendredi 12 octobre 2012 à 16:11:27 | Re : Trier une liste

Rapakooti


Alors deja merci c'etais si evident lol
par contre cela ne mache pas quand je lis ma liste elle reste tel quel.
Voici mon code

Code C# :
 
var savedDoc = XDocument.Load(xmlListFilePath);
           foreach (var saved in savedDoc.Root.Elements("FilePath"))
              listeatelecharger.Add(saved.Value);
           max = dataGridView1.Rows.Count;


           listeatelecharger.Sort();
           foreach (string film in listeatelecharger)
            {
                MessageBox.Show(film);
                if (!File.Exists(Path.GetDirectoryName(film) + "\\" + Path.GetFileNameWithoutExtension(film) + ".nfo"))
                {
                   //Generation du thread pour generer le fichier html pour un FIlm sans nfo                 
                    Thread t = new Thread(new ParameterizedThreadStart(creationsansnfo));
                    t.Start(film + "*" + emplacementbibli);
                }
                else
                {
                    Thread t = new Thread(new ParameterizedThreadStart(creationnfo));
                    t.Start(film + "*" + emplacementbibli);

                }


            }


Voici mon

R A P A K O O T I
vendredi 12 octobre 2012 à 16:16:52 | Re : Trier une liste

whismeril

ça vient peut être du foreach, il m'est arrivé qu'il me lise une list à l'envers....
Peut être dans ta requette linq, pour extraire le xml, il y a moyen de mettre un order by quelque part.

Je regarde ça dans la soirée.


Whismeril
vendredi 12 octobre 2012 à 16:37:51 | Re : Trier une liste

Rapakooti



Merci attend un peu je crois avoir trouvé mon erreur , comme d'hab tu a raison je pense , je reviens vers toi dans la soiréé

R A P A K O O T I
vendredi 12 octobre 2012 à 19:25:09 | Re : Trier une liste

whismeril

Je viens de retester, le foreach marche bien avec une List<string>, c'était avec un objet perso que ça avait bogué.

Par contre, il s'agit d'une de chemins et dans l'ordre alphabétique
"c:\temp\Zigomar.avi" est avant "d:\temp\Amityville.avi"

Si tu veux trier sur le nom du film, tu as peut-être intérêt a créer un objet, dans lequel tu isolerais le nom du film dans un variable.
Et là il te faudrait implémenter Icomparable.


pour exemple je veux trier des personne par le prénom:

Code C# :
    class Personne
    {
        public string Nom { get; set; }

        public string Prenom { get; set; }
    }


J'écris que Personne implémente Icomparable

Code C# :
class Personne:IComparable<Personne>

Là je fais click droit sur IComparable et "Implementer l'interface" "Implementer l'interface"

Ça va écrire cette méthode
Code C# :
        public int CompareTo(Personne other)
        {
            throw new NotImplementedException();
        }



Dans cette méthode je décris comment comparer l'instance en cours à l'instance other:
Code C# :
        public int CompareTo(Personne other)
        {
            return this.Prenom.CompareTo(other.Prenom);
        }


Whismeril
lundi 15 octobre 2012 à 17:29:41 | Re : Trier une liste

krimog

Administrateur CodeS-SourceS
Salut,

Pour générer une liste triée à partir d'une liste (ça ne touche pas à la liste originale), tu peux utiliser la méthode d'extension "OrderBy()".

Code C# :
IOrderedEnumerable<Personne> listeTriee = liste.OrderBy(elt => elt.Nom).ThenBy(elt => elt.Prenom);


Remarques :
- Puisque les string sont, de base, comparables, si tu as une List<string>, tu peux juste mettre .OrderBy(elt => elt).
- "elt" peut être remplacé par ce que tu veux. C'est juste le nom que tu donnes à l'élément courant.
- Le "ThenBy()" est facultatif. Tu peux aussi en mettre plusieurs si tu le souhaites.
- Tu peux, derrière, appeler la méthode .ToList() pour récupérer une List<T> plutôt qu'un IOrderedEnumerable<T>.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
lundi 15 octobre 2012 à 17:38:25 | Re : Trier une liste

whismeril

Ha oui certes, mais comme plus haut il avait été question d'implémenter Icomparable, je n'ai pas changé de méthode.



Whismeril

1 2

Cette discussion est classée dans : code, liste, trier, sort, listeatelecharger


Répondre à ce message

Sujets en rapport avec ce message

Tableau trier help [ par emmanuel9 ] Bonjour, Je chercher à trier un tableau de x élements dans utiliser de méthode comme sort. Quel méthodes de tries me conseilleriez vous et surtout com trier une array list [ par dude21 ] Salut tout le mondej'ai une arraylist de personnes avec le nom + prénom + âgeet je souhaiterais trier une fois sur le nom et une autre fois sur l'âge. C# Sort ? 2 listbox [ par iian2 ] Allo,C'est asser simple comme question j'ai une listbox que je veux trier pis je veux que l'autre suivre sens se trier pour ne pas defaire l'ordre. Co [C#] Liste chainée [ par torNADoS ] Salut est ce que quelq'un pourra me dire comment creer une liste chaine avec C# type[code] struct liste { public int code; public int num; struct list trier une bindingsource. [ par mathmax ] Bonjour,J'ai un objet de type BindingSource contenant une liste d'objets. J'aimerais pouvoir le trier selon une certaine propriété des objets de la li Verification avant ajout dans une liste [ par bastien974 ] Bonjour a tous, Je vous explique mon probleme avant de rajouter un train dans ma liste j'aimerai qu'il verifie si l'objet train existe deja , si c'es Afficher une liste de User Control [ par Glucoz21 ] Bonjour à tous. Voila je suis sur un problème depuis 2 jours et malgré mes recherches sur internet, je ne trouve pas comment le résoudre... Je m'adre Trier date [ par emmanuel9 ] Bonjour à tous, J'ai une liste de date et je voudrais à partir de cette liste de date trier plusieurs listes qui contiendrais mes date mais par mois IComparer sur plusieurs colonnes [ par romagny13 ] Salut,ba la question est simple savez vous comment trier sur plusieurs colonnes avec IComparer (et encore mieux IComparer de liste générique)dans l'id trier une collections de noeuds Xml [ par romagny13 ] Bonjourvoila je me demandais s'il exisait un moyen de trier des noeuds xml- nous savons trier une liste d'objets avec IComparer ou IComparable- nous s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales