2009-11-26 3 views
-2

possible en double:
how to fetch data from nested Dictionary in c#comment récupérer les données de dictionnaire imbriqué dans le code C#

je dois récupérer les données de Dictionnaire imbriqué en C#. Mon dictionnaire est comme ceci:

static Dictionary<string, Dictionary<ulong, string>> allOffset = 
    new Dictionary<string, Dictionary<ulong, string>>(); 

je dois récupérer toutes les clés/valeurs du dictionnaire complet, représentée comme ceci:

string->>ulong, string 

Merci à l'avance.

+0

Que voulez-vous dire par "- >>"? Votre question n'est pas très claire - donnez s'il vous plaît un exemple avec des données concrètes, manquant juste le peu de logique que vous voulez, et ce sera probablement facile. Cela aiderait aussi si vous diriez quelle version de .NET vous utilisez, ainsi nous savons si utiliser LINQ :) –

+2

Si vous n'avez pas obtenu la réponse que vous vouliez de votre question initiale, essayez de clarifier vos besoins , au lieu de le demander à nouveau: http://stackoverflow.com/questions/1801905/how-to-fetch-data-from-nested-dictionary-in-c –

Répondre

1

Je ne sais pas si vous voulez écrire les données sur la console ou si vous voulez les transformer en une nouvelle structure d'objet.

Mais au cas où vous voulez imprimer, pour cette solution:

foreach(var pair in allOffset) 
{ 
    foreach(var innerPair in pair.Value) 
    { 
    Console.WriteLine("{0}->>{1},{2}", pair.Key, innerPair.Key, innerPair.Value); 
    } 
} 
2

Vous pouvez utiliser LINQ pour le faire:

var flatKeysAndValues = 
    from outer in allOffset // Iterates over the outer dictionary 
    from inner in outer.Value // Iterates over each inner dictionary 
    select new 
       { 
        NewKey = outer.Key + "->>" + inner.Key, 
        NewValue = inner.Value 
       }; 

Exemple d'utilisation:

foreach (var flatKeysAndValue in flatKeysAndValues) 
{ 
    Console.WriteLine("NewKey: {0} | NewValue: {1}", 
          flatKeysAndValue.NewKey, flatKeysAndValue.NewValue); 
} 
Questions connexes