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 :

Methode permettant d'ajouter les données d'un Dictionary dans un autre Dictionary


Sujet :

C#

  1. #1
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut Methode permettant d'ajouter les données d'un Dictionary dans un autre Dictionary
    Bonjour,


    J'ai un Dictionary<string, string> principal, auquel je veux ajouter les données d'un second Dictionary<string, string>.

    Y a t-il un méthode simple(du dictionnaire lui même, ou de LINQ) permettant d'ajouter les données du 2nd dictionnaire dans le dictionnaire principal ?
    (sans utiliser de boucle).
    Je n'arrive pas à la trouver.
    De plus, il faut savoir que dans le dictionnaire à ajouter, il peut y avoir des clés qui sont déjà dans le dictionnaire principal. (Dans ce cas, il ne faut pas ajouter le couple)

    Une méthode appelée sur le dictionnaire principal avec en paramètre le 2nd dictionnaire un truc comme ça :
    quelque chose dans le genre... ?


    Merci de votre aide.



    Ou si ça n'existe pas,
    => une méthode simple pour ajouter les données d'une query LINQ (qui renvoie un IEnumerable d'objets anonymes) à un Dictionary ?

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Quelque chose dans ce goût là ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dictionary<String, String> t = new Dictionary<string, string>();
                Dictionary<String, String> t2 = new Dictionary<string, string>();
     
                t = t.Union(t2.Where(kvp => !t.ContainsKey(kvp.Key))).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
    Union présente aussi une surcharge avec un Comparer, cela répond peut-être mieux au problème (et serait alors plus propre ==> pas de Where), mais je n'en connais pas l'usage donc je passe !

    ps : non testé, je te laisse me dire !

  3. #3
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut
    Oui un truc comme ça.
    Je testerais demain, ça plus d'autres idées, et je reviendrais faire part des résultats.

  4. #4
    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 : 43
    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 753
    Points
    39 753
    Par défaut
    La méthode d'Arnard est valable, mais elle crée un nouveau Dictionary, ce qui n'est pas tout à fait pareil que d'ajouter à un Dictionary existant... En fonction de ce que tu veux, ça peut faire l'affaire, mais sinon tu n'as pas le choix : il faut faire un boucle.

    Mais bon, c'est pas la fin du monde... Linq permet souvent de se passer des boucles explicites, mais ça n'interdit pas non plus leur utilisation

Discussions similaires

  1. [XL-2007] Ajouter les donnée d'un userform dans la premiere ligne vide
    Par dodo28 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 31/07/2009, 00h12
  2. [Excel] Extraire les données d'un excel dans un autre excel
    Par CrazySeb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/06/2008, 21h12
  3. Récupérer les données d'une liste dans une autre liste
    Par benoit knk dans le forum SharePoint
    Réponses: 2
    Dernier message: 23/05/2008, 16h10
  4. Réponses: 4
    Dernier message: 06/05/2008, 19h59
  5. Boucles pour récuperer les données d'un tableau dans un autre.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/09/2007, 21h39

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