2014-08-28 159 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

相關問題