Diccionario anidado colección en .NET
La redDictionary<TKey, TValue>
El objeto permite la asignación de claves / valores como tal:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict["1"] = "foo";
dict["2"] = "bar";
pero no puedo usar un Diccionario como este:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict["F1"]["F2"]["F3"] = "foo";
dict["2"]["X"] = "bar";
¿Hay alguna colección en .NET que me permita anidar?[]
¿O tendría que crear el mío?
Si tengo que crear el mío, ¿cómo haría esto?
EDITAR:
También sería útil si pudiera tener implementaciones que esperen claves únicas, como las siguientes:
dict["F1"]["F2"]["F3"] = "foo";
dict["F1"]["F2"]["F3"] = "bar"; //result is "bar" because "foo" was overridden
y una implementación donde una clave puede ser usada más de una vez.
dict["F1"]["F2"]["F3"] = "foo";
dict["F1"]["F2"]["F3"] = "bar"; //result can be "foo" and "bar"
es posible?
EDITAR (según la pregunta de Jon Skeet):
Quiero usar la estructura como tal (como un ejemplo muy aproximado):
json["data"]["request"]["name"] = "username";
json["data"]["request"]["pass"] = "password";
resuelve a
{ data: { request: { name: "username", pass: "password" } } }
e igualmente habría un equivalente para XML etc.