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 :

Parcourir un dictionnaire multi-dimensionnel


Sujet :

C#

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Points : 19
    Points
    19
    Par défaut Parcourir un dictionnaire multi-dimensionnel
    Bonjour,

    Je viens demander un coup de pouce pour un problème sur lequel je bloque depuis quelques heures.

    J'ai une chaîne de caractères au format JSON que j'ai désérialisé afin d'en obtenir un dictionnaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    { "JSON":{
       "ObjectsType1":[
            {
               "variable1":xxx
               "variable2":xxx
               "variable3":xxx
               "variable4":{
                       "variable4_1":xxx
                       "variable4_2":xxx
                }
            },
            {
               "variable1":xxx
               "variable2":xxx
               "variable3":xxx
               "variable4":{
                       "variable4_1":xxx
                       "variable4_2":xxx
                }
            }
          ],
         "ObjectsType2":[
            {
               "variable1":xxx
               "variable2":xxx
               "variable3":xxx
               "variable4":{
                       "variable4_1":xxx
                       "variable4_2":xxx
                }
            },
             {
               "variable1":xxx
               "variable2":xxx
               "variable3":xxx
               "variable4":{
                       "variable4_1":xxx
                       "variable4_2":xxx
                }
            }
          ]
       }
    }
    Je souhaiterais pouvoir parcourir tous les enregistrements du champ "ObjectsType1" de ce dictionnaire afin d'y appliquer une action.
    Et faire de même avec les "ObjectsType2" en appliquant une autre action.

    S'il n'y avait qu'un enregistrement par type, je pourrais accéder aux variables en appelant les valeurs ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var variable1 = dict["JSON"]["ObjectsType1"]["variable1"];
    Mais le nombre d'enregistrements de chaque type est variable et les valeurs liées aux clés peuvent être des String, des Int ou des Doubles.
    Donc j'ai essayé de boucler sur le dictionnaire, mais ensuite, je ne vois pas comment parcourir les enregistrements...

    Savez-vous si cela est possible avec un foreach, du style comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach (KeyValuePair<string, dynamic> entry in dict["JSON"]["ObjectsType1"]){ ... }
    J'ai essayé d'accéder aux clés et aux valeurs de différentes manières...Mais je ne trouve pas de méthode "jolie" qui puisse fonctionner...

    Pour être plus précise, voici ce que je souhaiterais atteindre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    foreach (KeyValuePair<string, dynamic> entry in dict["JSON"]["ObjectsType1"]){ 
     
       var variable1 = ...["variable1"];
       var variable2 = ...["variable2"];
       ....
     
        doSomethingType1();
    }
     
    foreach (KeyValuePair<string, dynamic> entry in dict["JSON"]["ObjectsType2"]){ 
     
       var variable1 = ...["variable1"];
       var variable2 = ...["variable2"];
       ....
     
        doSomethingType2();
    }
    Je suis à sûre que je ne suis pas loin de la solution mais je ne parviens pas à mettre le doigt dessus.
    Si quelqu'un sait me répondre, merci infiniment d'avance.

  2. #2
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Points : 19
    Points
    19
    Par défaut
    Bonjour !

    J'ai trouvé la solution, à tête reposée, et effectivement, je n'étais pas loin...
    J'avais juste mélangé plusieurs méthodes et du coup, ça ne donnait rien du tout.
    Alors si jamais, pour ceux que ça pourrait aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    foreach (var entry in dict["JSON"]["ObjectsType1"]){ 
     
       var variable1 = entry["variable1"];
       var variable2 = entry["variable2"];
       ....
     
        doSomethingType1();
    }
     
    foreach (var entry in dict["JSON"]["ObjectsType2"]){ 
     
       var variable1 = entry["variable1"];
       var variable2 = entry["variable2"];
       ....
     
        doSomethingType2();
    }
    Voilà, merci et à bientôt

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

Discussions similaires

  1. Parcourir un tableau multi-dimensionnel
    Par dx007 dans le forum AngularJS
    Réponses: 17
    Dernier message: 18/04/2015, 13h20
  2. [Tableaux] Les tableaux multi-dimensionnels
    Par ludovik dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2006, 12h21
  3. [Tableaux] tri sur un tableau multi-dimensionnel
    Par nicoaix dans le forum Langage
    Réponses: 1
    Dernier message: 12/04/2006, 21h23
  4. Réponses: 7
    Dernier message: 18/12/2005, 23h29
  5. Réponses: 4
    Dernier message: 24/08/2005, 14h09

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