2015-10-31 146 views
0

我有一個結構是Dictionary<string,object>,其中值是字符串,嵌套Dictionary<string,object>Lists這些嵌套字典。這個結構大部分是構建將被轉換爲JSON的東西的臨時區域。C#中的任意嵌套字典/列表結構的索引

如果我想作出斷言對結構的內容,但是,我不能輕易做這樣的事情

foo["bar"][0]["baz"][1][2]["quux"] 

不可笑的類型轉換,而且由於結構不完全是遞歸的,一個解決方案像這樣(Recursive generic types)不起作用。

這裏最好的選擇是什麼?

我應該看看dynamic? 我應該用匿名對象替換Dictionary實例嗎?
我應該看看ExpandoObject?等等

+0

它看起來像你不在乎類型安全在這裏,所以你可以肯定使用'動態'。 – MarcinJuraszek

+0

是的,在這種情況下,我想要「動態」 - 這應該是公認的答案。整個問題的關鍵在於讓我使用鴨子打字和索引到字典/列表中。唯一的缺點是,你仍然需要使用LINQ擴展方法,比如'Select'和'Where'來工作。 – wrschneider

回答

1

既然你把它轉換成JSON,只要使用Json.NET它可以讓你做foo["bar"][0]["baz"][1][2]["quux"]開箱,並有其他很好的功能,例如把你的對象轉換成格式正確的Json字符串,一旦你準備好把它變成對此。