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 :

convertir une hastable en list


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut convertir une hastable en list
    Bonjour,

    J'ai une hastable qui contient de nombreuses données.

    J'ai égalemment un List<Mon_Object>.

    J'aimerai récupérer tous les objects de la hashtable et les mettre dans ma list...

    ça doit être tout bête mais google semble discret à ce sujet...

    Merci d'avance

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Si c'est un dico typé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taListe.AddRange(tonDico.Values);
    Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach(Mon_Object o in hash.Values)
      taListe.Add(o);
    La première compte sur le fait qu'Addrange prend n'importe quel IEnumerable (pourvu qu'il soit typé). La deuxième compte sur le cast explicite que l'on peut faire dans une boucle foreach.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Si c'est un dico typé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taListe.AddRange(tonDico.Values);
    Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach(Mon_Object o in hash.Values)
      taListe.Add(o);
    La première compte sur le fait qu'Addrange prend n'importe quel IEnumerable (pourvu qu'il soit typé). La deuxième compte sur le cast explicite que l'on peut faire dans une boucle foreach.
    Merci c'est ce que je voulais, mais j'avais essayé ta 2nde solution mais en omettant le values pour hash, et ça compilait quand même mais ça ne marchait pas quand je voulais visualiser...

    Quand à ta première solution, pourquoi pas mais dans ce cas je suppose qu'il faut que je dise que mon hash est une hashtable de Mon_Objet, et je sais pas faire, est ce possible d'ailleurs?

    Sinon, avec ta seconde solution qui me suffit quand même, j'ai malheureusement tout qui s'affiche mais un sens décroissant: y'a t'il moyen de faire un tri sur ma liste? Dois-je le faire sur ma hashtable avant (car là je peux faire le tri par Key)? Comment?

    Merci encore

  4. #4
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par cyrano_de_bergerac Voir le message
    y'a t'il moyen de faire un tri sur ma liste?
    Oui, Regarde la doc de List<T>.Sort, ainsi que celle de Comparer<T>. Il faut que tu fournisses une méthode de tri (c'est à dire une méthode qui prend deux objets et qui renvoie un entier).

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Tu peux avoir une hashtable typée en utilisant un Dictionary<KeyType, ValueType>
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Tu peux avoir une hashtable typée en utilisant un Dictionary<KeyType, ValueType>
    En gros, dans mon code, à la place de Hastable, je mets Dictionary<Key Type, ValueType> et je peux faire les mêmes opérations sur ces 2 types de variables?

  7. #7
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Tu peux avoir une hashtable typée en utilisant un Dictionary<KeyType, ValueType>
    C'est d'ailleurs l'équivalent générique de la HashTable.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Oui, Regarde la doc de List<T>.Sort, ainsi que celle de Comparer<T>. Il faut que tu fournisses une méthode de tri (c'est à dire une méthode qui prend deux objets et qui renvoie un entier).
    Super, je me suis penché dessus, et bien que ce ne soit pas simple pour une première fois, j'y suis arrivé!

    Merci!

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

Discussions similaires

  1. Convertir une chaine en liste
    Par analandry94 dans le forum Prolog
    Réponses: 3
    Dernier message: 30/04/2015, 09h33
  2. convertir une liste en string
    Par tntneo dans le forum Prolog
    Réponses: 2
    Dernier message: 03/04/2010, 02h24
  3. Réponses: 3
    Dernier message: 18/06/2009, 15h59
  4. Convertir une List<Object> en List<Toto>
    Par onlytoine dans le forum Langage
    Réponses: 7
    Dernier message: 19/01/2009, 14h37
  5. Convertir une liste en prédicat
    Par Myrkvid dans le forum Prolog
    Réponses: 2
    Dernier message: 10/11/2006, 09h26

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