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 sur liste d'objet


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut Tri sur liste d'objet
    Bonjour,

    J'ai une liste generic d'objet que j'aimerais trier du type List<User>.Sort().

    Comment dois je faire ?

    Merci
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Points : 443
    Points
    443
    Par défaut
    Bonjour topolino,

    Je ne comprends pas vraiment ta demande.
    Est-ce que ta liste est bien de type List<User> ? Si oui, sur quel critère veut tu la trier ? De manière ascendante ou descendante ?
    Quelle version du framework utilises-tu ?

  3. #3
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Je desire le trier sur le nom par exemple.
    Je ne peux pas utiliser Ling et les lambda expression.
    Je suis en c#2.0
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  4. #4
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Points : 443
    Points
    443
    Par défaut
    Ok, avec un délégué anonyme et la méthode Sort ça devrait passer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    liste.Sort(new Comparison<User>(delegate(User user1,User user2) {
        return user1.Nom.CompareTo(user2.Nom);
    }));
    Je part du principe que la propriété Nom de User est de type string.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il faut implémenter un IComparer<User> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class UserComparer : IComparer<User>
    {
        public int Compare(User x, User y)
        {
            return string.Compare(x.Nom, y.Nom);
        }
    }
    Et pour l'utiliser, tu le passes en paramètre de la méthode Sort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    List<User> users = new List<User>();
    ...
    users.Sort(new UserComparer());
    EDIT: Sinon la méthode de Paul avec un Comparison<User> est un pas mal aussi... C'est plus concis, mais la syntaxe est (un peu) plus compliquée je trouve

  6. #6
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Merci à vous deux.

    Je voulais un truc simple, car je n'avais pas envie de faire une class implementant icomparer et icomparable a chaque list d'objet que je dois creer, juste pour implementer une tri simple.

    Merci à vous 2
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème Iterateur sur liste d'objets
    Par kornterstrike dans le forum SL & STL
    Réponses: 1
    Dernier message: 23/11/2007, 19h33
  2. Tri sur liste modifiable
    Par JeanMikael dans le forum VBA Access
    Réponses: 9
    Dernier message: 27/09/2007, 11h46
  3. Tri sur liste chainée
    Par SevSof dans le forum C
    Réponses: 16
    Dernier message: 27/05/2007, 00h45
  4. [Fonction]tri sur liste déroulante
    Par maxeur dans le forum IHM
    Réponses: 8
    Dernier message: 16/04/2007, 10h00
  5. Requête, tri sur liste de choix
    Par seb.kepka dans le forum Access
    Réponses: 1
    Dernier message: 15/05/2006, 14h47

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