我想寫一個遞歸C#函數,它將操作IDictionary<string, T>
形式的通用字典,其中T
是另一個IDictionary<string, T>
或字符串。遍歷C#中的任意字典樹結構
我第一次失敗的嘗試看起來是這樣的:的HandleDict<T>(IDictionary<string, T>) where T : IDictionary<string, T>
public string HandleDict(IDictionary<string, string> dict){
// handle the leaf-node here
}
public string HandleDict<T>(IDictionary<string, IDictionary<string, T>> dict){
// loop through children
foreach(string key in dict.Keys){
HandleDict(dict[key]);
}
}
我也試過變種,但也完全不是那麼回事。我知道我想要做的事可以通過一個自定義類作爲參數而不是字典來實現,並且我的嘗試在概念上有缺陷(泛型函數中的遞歸沒有結束)。我仍然想知道是否有一種方法可以使用普通的IDictionaries來實現我想要的功能。
難道這樣一本詞典是不可實例無論如何,因爲它總是爲你定義它的開放式? – lesscode 2010-05-26 22:03:46