我有字典变量就像:
Dictionary<string,object> dictionary;
这个词典在运行时里面嵌套了词典,如:
Dictionary<string,Dictionary<string,Dictionary<....<Dictionary<string,int>>>
我正在尝试搜索这些嵌套字典中的所有键。它可能是递归的但是我没有处理递归的情况。在字符串比较(string.Contains(&#34; searchText&#34;)完成之后,我将仅保留包含的内容。
我如何实现这一目标?
答案 0 :(得分:1)
您可以尝试dfs ..下面的代码只打印每个键
public void NestedDictIteration(Dictionary<string,object> nestedDict)
{
foreach (string key in nestedDict.Keys)
{
Console.WriteLine(key);
object nextLevel = nestedDict[key];
if(nextLevel == null)
{
continue;
}
NestedDictIteration((Dictionary<string, object>)nextLevel);
}
}
答案 1 :(得分: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];
}
}