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

C# Discussion :

Comment gérer une liste sans doublons ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Comment gérer une liste sans doublons ?
    Bonjour

    Ma question est peut etre idiote, j'espere qu'on m'excusera !

    J'aimerais empecher l'ajout de double en faisant un List.add();

    Bien sur je pourrais appeller une fonction en lui passant la liste et l'element a ajouter et faire le traitement nécessaire dans cette fonction

    Mais je me demande s'il n'est pas possible d'overwriter la fonction add pour traiter cela drectement de maniere plus transparente ?

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    bah ca revient à rajouter le test if(list.Contains(monObj)). je suis pas sûr que dériver puis surcharger cette méthode juste pour une ligne vaille vraiment le coup

    après, en 3.5 avec les méthodes d'extension, c'est une toute autre histoire

  3. #3
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Suivant la taille que peut avoir la liste, il faut aussi voir l'impact sur les performances puisque la recherche (Contains) est une opération O(n).

    Pour ce genre de cas, cela doit être possible de faire une classe qui implémente IList<T> en utilisant un dictionnaire en interne. La recherche, en se basant sur la clé du dictionnaire, devient une opération O(1) à ce moment.

  4. #4
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci

    Mon objet est une petite classe de données dont la clef est composée de deux int Dag et Chauff
    Je pense en définitive que le plus simple sera de definir un comparer dessus de la trier et d'appeller une fonction avec la liste et l'element a eventuellement ajouter

    Voici de quoi est composée la liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        public class S_Tours
        {
          public bool Zie { get; set; }
          public bool Werk { get; set; }
          public int Dag { get; set; }
          public int Chauff { get; set; }
          public Color Kleur { get; set; }
          public List<ListAddr.S_Addr> Tour { get; set; }
        };

Discussions similaires

  1. [AC-2007] Comment gérer une liste de données trop importante ?
    Par cyrildad dans le forum Modélisation
    Réponses: 5
    Dernier message: 08/09/2009, 17h55
  2. Comment gérer une liste de plusieurs tarifs
    Par buddy82 dans le forum Modélisation
    Réponses: 6
    Dernier message: 27/08/2009, 16h29
  3. Renseigner une liste sans doublon dans une feuille ou dans un userform
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 26/01/2009, 14h54
  4. [débutant] Comment gérer une liste dans une liste
    Par Lenoiche dans le forum iReport
    Réponses: 0
    Dernier message: 16/07/2008, 10h41
  5. [VB.net] Comment gérer une liste de threads ?
    Par pdgnr dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/12/2006, 12h42

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