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

Windows Forms Discussion :

Collection à triple clé


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Par défaut Collection à triple clé
    Bonjour,

    J'ai besoin d'une collection dont la valeur est identifiée par une clé triple...
    Apperemment ce type de collection n'existe pas à première vue...?
    Quelqu'un à un conseil ou une idée de comment réaliser cela de la manière la plus propre et efficace possible ?

    Merci.

    Bonne soirée.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    C'est quoi une clé triple ? Trois clés pour un objet ? Ou une clé composant de 3 propriétés ?

  3. #3
    Membre éclairé Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Par défaut
    Composée de 3 string dans mon cas... donc sur le principe : dico["CLE1"]["CLE2"]["CLE3"].Value

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Et tu peux pas concatener les trois clés ensemble tout simplement ? Avec quelques précautions pour pas en avoir deux identiques bien évidemment.

  5. #5
    Membre éclairé Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Par défaut
    C'est une solution en effet... mais je ne sais pas si c'est vraiment la plus optimale... ?

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Dans un Dictionnary, on se base en fait sur la valeur de GetHashCode() de la string et pas réellement la string elle-même.

    GetHashCode() est un entier signé sur 32 bits qui représente la string.
    Donc quelque soit la longueur de la string, la clé a en réalité la même longueur, ce qui devrait assurer de bonnes performances.

    Les opérations de lecture dans un Dictionnary sont proches de O(1).

    En effet, deux string peuvent avoir le même HashCode. Il y a donc itération ensuite dans les HashCode qui correspondent pour retrouver exactement l'objet correspondant à la clé recherchée. GetHashCode() de string est assez uniformement distribué pour limiter ce risque.

  7. #7
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par diaboloche Voir le message
    Composée de 3 string dans mon cas... donc sur le principe : dico["CLE1"]["CLE2"]["CLE3"].Value
    Et pourquoi pas tout simplemement un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dictionnary<Dictionnary<Dictionnary<string,TonObjet>>> monDico = ...
    ?

  8. #8
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Une table de hachage dans une autre???
    Si les valeurs sont issues d'un graphe ça peut éventuellement servir sinon c'est un peu...
    Je mise sur Greybird pour la solution.

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

Discussions similaires

  1. []Erreur sur second emploi collection binding
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/03/2004, 18h02
  2. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58
  3. [VB6] la collection controls
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 30/04/2003, 17h03
  4. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 13h20
  5. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49

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