Вложенный словарь в .NET
СетьDictionary
объект позволяет присваивать ключ / значения следующим образом:
Dictionary dict = new Dictionary();
dict["1"] = "foo";
dict["2"] = "bar";
но я не могу использовать словарь так:
Dictionary dict = new Dictionary();
dict["F1"]["F2"]["F3"] = "foo";
dict["2"]["X"] = "bar";
Есть ли в .NET коллекция, которая позволяет мне вкладывать[]
, или я должен был бы создать мой собственный?
Если я должен создать свой собственный, как бы я это сделал?
РЕДАКТИРОВАТЬ:
Было бы также полезно, если бы у меня могли быть реализации, которые ожидают уникальные ключи, например:
dict["F1"]["F2"]["F3"] = "foo";
dict["F1"]["F2"]["F3"] = "bar"; //result is "bar" because "foo" was overridden
и реализация, в которой ключ может использоваться более одного раза
dict["F1"]["F2"]["F3"] = "foo";
dict["F1"]["F2"]["F3"] = "bar"; //result can be "foo" and "bar"
Это возможно?
РЕДАКТИРОВАТЬ (согласно Джону Скиту 'вопрос)
Я хочу использовать такую структуру (очень грубый пример):
json["data"]["request"]["name"] = "username";
json["data"]["request"]["pass"] = "password";
решает в
{ data: { request: { name: "username", pass: "password" } } }
и в равной степени был бы эквивалент для XML и т. д.