IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Tri d'un objet List<T>


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut Tri d'un objet List<T>
    Bonjour,

    je cherche à faire un tri sur un objet List<T> ou T est un objet personnel (une ligne de panier contenant une propriété string fournisseur), je cherche à trier par ordre alphabétique de nom de fournisseur mais je ne trouve aucun exemple précis ??? Une idée ?? J'ai vu vaguement la methode sort mais ca n'est pas très clair ...

    Merci.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Il faut que tu créé ton propre IComparer : c'est pas très compliqué : tu recoit tes 2 objets, tu les compares selon ta méthode, et tu renvoi un int selon tes critères de tri...

    Tu sera tout excité de la surpuissance du truc quand tu l'aura fait

  3. #3
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut


    En effet, une fois le IComparer implémenté, tu appelle :


    et... a y est, c'est trié!

  4. #4
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    list.Sort(delegate(MyObject a, MyObject b)
    {
        return a.ComparedString.CompareTo(b.ComparedString);
    });

  5. #5
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    L'ennui de cette méthode, c'est que s'il appelle le tri de plusieurs endroits, il doit redéfinir son delegate...

    Et en posant que le tri de deux objets est directement dépendant du type de ces objets, il me semble normal que ce soit à la Classe de définir la fonction de tri (que la fonction de tri relève du "métier" je veux dire).

    Mais cela reste une technique bien interressante

  6. #6
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Hed62, tu as entièrement raison, si le tri doit être fait au moins plus d'une fois, il est plus intéressant d'implémenter un IComparer.

  7. #7
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    Citation Envoyé par neptune Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    list.Sort(delegate(MyObject a, MyObject b)
    {
        return a.ComparedString.CompareTo(b.ComparedString);
    });
    Pourrais tu détailler un peu ton explication car je suis dessus actuellement et ca n'est toujours pas super clair ??? Avec un exemple si possible

  8. #8
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    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
    class MyObject a
    {
        string s;
        string nom;
        //// get set...
    }
     
     
    class Truc{
      List<MyObject > test()
      {
        List<MyObject > liste = new Lisy<MyObject>();
        // remplir liste
     
        liste.Sort(delegate(MyObject a, MyObject b)
        {
          return a.s.CompareTo(b.s);
        });
        return liste;
      }
    }

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/03/2008, 15h09
  2. tri par rapport à une liste dans la clause where
    Par umbakrail dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/07/2006, 11h32
  3. tri alphabétique d'une liste déroulante
    Par imeys dans le forum Access
    Réponses: 4
    Dernier message: 17/05/2006, 22h28
  4. [Debutant][AWT] Dimension d'un objet List
    Par romu92 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 10/05/2006, 10h12
  5. Tri dans zone de liste
    Par Waluigi dans le forum Access
    Réponses: 1
    Dernier message: 04/05/2006, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo