Geschachtelte Wörterbuchsammlung in .NET
Das NetzDictionary<TKey, TValue>
Objekt erlaubt die Zuweisung von Schlüsseln / Werten wie folgt:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict["1"] = "foo";
dict["2"] = "bar";
aber ich kann ein Wörterbuch nicht so verwenden:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict["F1"]["F2"]["F3"] = "foo";
dict["2"]["X"] = "bar";
Gibt es eine Sammlung in .NET, mit der ich verschachteln kann?[]
, oder müsste ich meine eigene erstellen?
Wenn ich meine eigene erstellen muss, wie würde ich das tun?
BEARBEITEN:
Es wäre auch nützlich, wenn ich Implementierungen haben könnte, die eindeutige Schlüssel erwarten, wie zum Beispiel:
dict["F1"]["F2"]["F3"] = "foo";
dict["F1"]["F2"]["F3"] = "bar"; //result is "bar" because "foo" was overridden
und eine Implementierung, bei der ein Schlüssel mehr als einmal verwendet werden kann
dict["F1"]["F2"]["F3"] = "foo";
dict["F1"]["F2"]["F3"] = "bar"; //result can be "foo" and "bar"
Ist das möglich?
EDIT (gemäß der Frage von Jon Skeet):
Ich möchte die Struktur wie folgt verwenden (als sehr grobes Beispiel):
json["data"]["request"]["name"] = "username";
json["data"]["request"]["pass"] = "password";
beschließt zu
{ data: { request: { name: "username", pass: "password" } } }
und ebenso gäbe es ein Äquivalent für XML usw.