如何将Dictionary <string,object =“”>转换为Dictionary <string,dictionary <string,string>&gt;&gt; </string,dictionary <string,string> </string,>

时间:2014-08-28 20:49:18

标签: c# object dictionary casting

我动态创建了Dictionary<string,object>并递归地将对象(字典的值)分配给stringDictionary<string,string>或其他Dictionary<string,object>。我已经能够编写代码来从string级别获取信息,但不能在Dictionary<string,object>级别时获取。

我只是尝试将值转换为Dictionary<string, string>但是会​​抛出一个错误,说该对象无法转换为该值。

我知道底层结构是Dictionary<string, string>。如何从对象中收集信息。

1 个答案:

答案 0 :(得分:3)

您必须创建所需类型的全新字典,并在将旧字典的值添加到新字典之前将其转换为实际类型。当然,这实际上并没有那么多代码,因为有些工具可以掩盖所有正在完成的工作,但是仍然需要完成这项工作。

var newDictionary = oldDictionary.ToDictionary(pair => pair.Key,
    pair => (Dictionary<string,string>)pair.Value);