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 :

HashTable(string , LinkedList <string> ) => Comment accéder aux données ?


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut HashTable(string , LinkedList <string> ) => Comment accéder aux données ?
    Bonjour,

    J'aimerais réaliser une table de hachage avec comme clé un string et comme value une LinkedList de string (dans un premier temps puis une LinkedList d'objets dans un deuxième temps).

    Pour le moment je reste bloqué, voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Hashtable HashTbleStr = new Hashtable();
    LinkedList<string> ll = new LinkedList<string>();
    ll.AddLast("elem01");
    HashTbleStr.Add("clé", ll);
    LinkedList<string> ll2 = new LinkedList<string>();
    ll2.AddLast("elem02");
    HashTbleStr.Add("clé2", ll2);
    IDictionaryEnumerator iEnum = HashTbleStr.GetEnumerator();
    while (iEnum.MoveNext())
    {
      MessageBox.Show(iEnum.Key + ":" + iEnum.Value);
    }
    Ce qui me donne comme résultat :
    clé:System.Collections.Generic.LinkedList`1[System.String]
    clé2:System.Collections.Generic.LinkedList`1[System.String]

    Ce que je n'arrive pas à saisir c'est que si IEnum.Value est ma liste pq je ne peux pas y accéder en faisant :
    (iEnum.Value).ElementAt(0).ToString()

    Dans ce cas comment faire ?

    Merci d'avance

    Lionel

  2. #2
    Membre habitué

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 76
    Points : 145
    Points
    145
    Par défaut
    Salut,

    Dans ton code, la HashTable ne connait pas le type associé à ta clé. Il considère que le résultat est de type Object. Tu dois donc caster le résultat si tu veux que ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    
    MessageBox.Show(iEnum.Key + ":" + ((LinkedList<string>)iEnum.Value).ElementAt(0).ToString());
    Sinon, une solution plus propre serait d'utiliser la classe System.Collection.Generic.Dictionnary qui te donnera le typage sans le cast.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    System.Collections.Generic.Dictionary<string, LinkedList<string>> myDict = newDictionary<string, LinkedList<string>>(); 
    LinkedList<string> ll = newLinkedList<string>();
    ll.AddLast("elem01");
    myDict.Add("clé", ll);
    LinkedList<string> ll2 = newLinkedList<string>();
    ll2.AddLast("elem02");
    myDict.Add("clé2", ll2);
    foreach (var cur in myDict)
    {
     MessageBox.Show(cur.Key + ":" + cur.Value.ElementAt(0));
    }
    Voila, j'espère que celà t'aidera.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    J'avais pourtant essayé de caster , j'ai du passer à côté d'un truc.

    Maintenant j'ai repris ton code pour Dictionary et tout se passe au poil, grand merci à toi d'avoir éclairer mes lanternes

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

Discussions similaires

  1. PPT : Comment accéder aux données des cubes SSAS ?
    Par raton_laveur dans le forum Powerpoint
    Réponses: 2
    Dernier message: 24/02/2009, 11h01
  2. Comment accéder aux données d'une base Oracle
    Par foufi5 dans le forum Connexions aux bases de données
    Réponses: 17
    Dernier message: 05/08/2008, 17h27
  3. Comment accèder aux données sous Linux ?
    Par lola06 dans le forum Réseau
    Réponses: 9
    Dernier message: 24/05/2007, 16h46
  4. [C#] Comment accéder aux données d'une Form ?
    Par cjacquel dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/07/2006, 11h55
  5. Relation ! schéma ! comment accèder aux données ?
    Par julien.63 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/06/2006, 21h14

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