2016-05-06 9 views
0

Ich möchte verschachtelte Wörterbücher in C# lesen. wie folgt erklärt:Fehler beim Lesen verschachtelter Wörterbücher C

Dictionary<string, double> dict2 = 
    new Dictionary<string, double>(); 
Dictionary<string, Dictionary<string, double>> dict1 = 
    new Dictionary<string, Dictionary<string, double>>(); 
Dictionary<string, Dictionary<string, Dictionary<string, double>>> globalDict = 
    new Dictionary<string, Dictionary<string, Dictionary<string, double>>>(); 

habe ich den folgenden Code, es zu lesen:

foreach (var key3 in globalDict.Keys) 
{ 
    foreach (var key2 in globalDict[key3].Keys) 
    { 
     foreach (var key1 in globalDict[key2].Keys) 
     { 
      Console.WriteLine(globalDict[key3][key2][key1]); 
     } 
    } 
} 

aber es gibt mir die folgende Fehlermeldung:

‚System.Collections.Generic.KeyNotFoundException '

in dieser Zeile:

foreach (var key1 in globalDict [key2].Keys) 

Irgendwelche Vorschläge über die Methode, die ich verwendete?

Antwort

2

vergessen Sie zum ersten Zugang globalDict[key3], wie Sie bereits ein Dictionary tief sind:

foreach (var key3 in globalDict.Keys) 
{ 
    foreach (var key2 in globalDict[key3].Keys) 
    { 
     Console.WriteLine("Jours {0}", key2); 

     foreach (var key1 in globalDict[key3][key2].Keys) // here 
     { 
       Console.WriteLine(globalDict[key3][key2][key1]); 
     } 
    } 
}