2014-08-28 161 views
-2

我动态创建了Dictionary<string,object>并递归地将对象(字典值)分配给string,Dictionary<string,string>或另一Dictionary<string,object> 。我已经能够编写代码从string级别中取出信息,但不能当它是Dictionary<string,object>如何将字典<字符串,对象>转换为字典<字符串,字典<字符串,字符串>>>

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

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

+1

显示您的代码。 – mason 2014-08-28 20:52:13

+0

你可能知道这个事实,但你的编译器没有。告诉他(通过铸造)。 – ths 2014-08-28 20:52:57

+0

@speising这只会导致程序在运行时崩溃。 – Servy 2014-08-28 20:53:48

回答

2

您必须创建一个所需类型的全新字典,并将旧字典的值转换为其实际类型,然后将它们添加到新字典中。当然,这实际上并不需要太多的代码代码,因为有些工具可以模糊所有正在完成的工作,但仍需要完成这项工作。

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

这么简单但很好的答案 – 2018-03-02 11:03:36

相关问题