我希望能夠有一個字典<字符串,字典<字符串,字典<字符串,... >>>。我不希望字典<字符串,對象>,因爲我必須將對象強制轉換回有框內的任何對象,這使得遍歷嵌套字典變得困難。如何定義C#和VB.Net中的遞歸或嵌套數據結構?
我想能夠做到從一些串行化的數據源,如JSON,YAML,XML加載字典,然後能夠與
dict["toplevel"]["nextlevel"]["and then some"]
背景故事
我遍歷已經將VBJSON移植到.Net。我已經(有)字典<對象,對象>我已經嵌入到其他字典<對象,對象>和列表<對象>。它讓我很煩惱,我無法輕易地在沒有大量演員的情況下穿越最終的結構。
> thing["collection"]
Count = 4
[0]: {[0, dog]}
[1]: {[1, cat]}
[2]: {[2, 2]}
[3]: {[3, 3]}
> thing["collection"][0]
Cannot apply indexing with [] to an expression of type 'object'
> (thing["collection"])[0]
Cannot apply indexing with [] to an expression of type 'object'
> ((Dictionary<object,object>)thing["collection"])[0]
"dog"
你的問題是什麼?你有什麼嘗試不起作用? – Jonesopolis
你可以定義一個基本列表/字典,然後另一個持有('字典(字符串,字典(T))'),然後再嵌套它,如果需要。但它是更清潔,使他們的班級leas口氣和內部化的一些複雜性 – Plutonix
重複http://stackoverflow.com/questions/647533/recursive-generic-types ...或至少這擴大了@ jmoreno的回答低於 – bugmagnet