2014-02-18 54 views
1

我正在尋找最好的做法從一去:嵌套Dictionray <T,V>嵌套ConcurrentDictionary <T,V>

Dictionary<string,Dictionary<string,Dicionary<string,Dictionary<string,string>>>> 

要:

ConcurrentDictionary<string,ConcurrentDictionary<string,ConcurrentDictionary<string,string>>>> 

當嵌套的水平可以改變。我試圖使用泛型,但無法通過嵌套的第一級。

+7

如果你需要那種字典嵌套的,你可能會做錯事。 – MarcinJuraszek

+0

我同意,但在這一點上,我試圖找到最優雅的想要將其轉換爲所需的... – Matt

回答

2

您似乎需要一個樹形數據結構。包裝在一個類的字典:

class MyNode { 
Dictionary<string, MyNode> children = ...; 
} 

現在你可以去任意深。避免遞歸泛型。

1

您可能需要自定義數據結構來保存此層次結構。你有沒有想過使用樹?

你可以嘗試使用元組來組合幾個級別的鍵。例如

ConcurrentDictionary<Tuple<string,string>, ConcurrentDictionary<string, string>> 

ConcurrentDictionary<Tuple<string,string,string>, string>