如何将字典<字符串,对象>转换为字典<字符串,字典<字符串,字符串>>>
问题描述:
我动态创建了Dictionary<string,object>
并递归地将对象(字典值)分配给string
,Dictionary<string,string>
或另一Dictionary<string,object>
。我已经能够编写代码从string
级别中取出信息,但不能当它是Dictionary<string,object>
。如何将字典<字符串,对象>转换为字典<字符串,字典<字符串,字符串>>>
我只是试图将该值转换为Dictionary<string, string>
,但会抛出一个错误,指出该对象无法转换为该对象。
我知道底层结构是Dictionary<string, string>
。我如何从对象中收集信息。
答
您必须创建一个所需类型的全新字典,并将旧字典的值转换为其实际类型,然后将它们添加到新字典中。当然,这实际上并不需要太多的代码代码,因为有些工具可以模糊所有正在完成的工作,但仍需要完成这项工作。
var newDictionary = oldDictionary.ToDictionary(pair => pair.Key,
pair => (Dictionary<string,string>)pair.Value);
+0
这么简单但很好的答案 – 2018-03-02 11:03:36
显示您的代码。 – mason 2014-08-28 20:52:13
你可能知道这个事实,但你的编译器没有。告诉他(通过铸造)。 – ths 2014-08-28 20:52:57
@speising这只会导致程序在运行时崩溃。 – Servy 2014-08-28 20:53:48