2016-05-06 17 views
0

C#で入れ子になっている辞書を読みたい。 は次のように宣言:入れ子になった辞書の読み込みエラーC

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]); 
     } 
    } 
} 

が、それは私に次のエラー得られます:

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>>>(); 

私はそれを読むために、次のコードを使用

「System.Collections.Generic.KeyNotFoundExceptionを'

この行:

私が使った方法についてのご意見はありますか?

答えて

2

すでに1 Dictionaryが深いとしてあなたは、最初のアクセスglobalDict[key3]に忘れてしまった:

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]); 
     } 
    } 
} 
関連する問題