我动态创建了Dictionary<string,object>
并递归地将对象(字典的值)分配给string
,Dictionary<string,string>
或其他Dictionary<string,object>
。我已经能够编写代码来从string
级别获取信息,但不能在Dictionary<string,object>
级别时获取。
我只是尝试将值转换为Dictionary<string, string>
但是会抛出一个错误,说该对象无法转换为该值。
我知道底层结构是Dictionary<string, string>
。如何从对象中收集信息。
答案 0 :(得分:3)
您必须创建所需类型的全新字典,并在将旧字典的值添加到新字典之前将其转换为实际类型。当然,这实际上并没有那么多代码,因为有些工具可以掩盖所有正在完成的工作,但是仍然需要完成这项工作。
var newDictionary = oldDictionary.ToDictionary(pair => pair.Key,
pair => (Dictionary<string,string>)pair.Value);