我想写一个递归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