2016-10-20 15 views
-1

C#でネストされた辞書を反復処理する方法:辞書変数が似ている私が持っている再帰的

Dictionary<string,Dictionary<string,Dictionary<....<Dictionary<string,int>>> 

私はすべてを検索しようとしています:

Dictionary<string,object> dictionary; 

は、この辞書は以下のように実行時に内部で辞書を入れ子にしていますこれらのネストされた辞書のキー再帰的には可能かもしれませんが、再帰的な場合は扱えません。文字列比較した後(string.Contains(「検索テキスト」)は、私が唯一のものを含んでい続けるつもりです行なわ。

どのように私はこの目標を達成することができますか?

+2

あなたは[最小、完全で、かつ検証可能な例](http://stackoverflow.com/help/mcve)として与えることができますか? – Pikoh

+0

何を試しましたか?そのすべての再帰関数と同じ – BugFinder

+0

私は単純な再帰関数について苦労し、再帰的コードでの答えは私の問題を解決します。ありがとう –

答えて

1

のようにあなただけのすべてのキー

を出力コードの下.. DFSを試すことができます
0

あなたはこのように行うことができます。

Dictionary<string, Dictionary<string, string>> dict= new Dictionary<string, Dictionary<string, string>>(); 
     var query = from outer in dict 
        from inner in outer.Value 
        select outer.Key + "->>" + inner.Key + ", " + inner.Value; 

     foreach (string item in query) 
     { 
      //item 
     } 

それともこの

foreach (string key in dict.Keys) 
{ 
    foreach (string innerKey in dict[key].Keys) 
    { 
     //dict[key][innerKey]; 
    } 
} 
+3

これは、2レベルのネストされた辞書で動作します。たとえば、20レベルにネストされた場合はどうなりますか? – Pikoh

関連する問題