Imbriquée collection de dictionnaires en .NET

L' .NET Dictionary<TKey, TValue> objet permet l'affectation des clés/valeurs comme:

Dictionary<string, string> dict = new Dictionary<string, string>();
dict["1"] = "foo";
dict["2"] = "bar";

mais je ne peux pas utiliser un Dictionnaire comme:

Dictionary<string, string> dict = new Dictionary<string, string>();
dict["F1"]["F2"]["F3"] = "foo";
dict["2"]["X"] = "bar";

Est là une collection dans .NET qui me permet de nid [], ou devrais-je créer mon propre?

Si je dois créer mon propre, comment pourrais-je faire cela?

EDIT:

Il serait également utile si je pouvais avoir des implémentations qui attendent les clés uniques, comme suit:

dict["F1"]["F2"]["F3"] = "foo";
dict["F1"]["F2"]["F3"] = "bar"; //result is "bar" because "foo" was overridden

et une mise en œuvre lorsqu'une clé peut être utilisée plus d'une fois

dict["F1"]["F2"]["F3"] = "foo";
dict["F1"]["F2"]["F3"] = "bar"; //result can be "foo" and "bar"

Est-ce possible?

EDIT (comme par Jon Skeet la question):

Je veux utiliser la structure comme (comme un exemple approximatif):

json["data"]["request"]["name"] = "username";
json["data"]["request"]["pass"] = "password";

décide de

{ data: { request: { name: "username", pass: "password" } } }

et aussi il y aurait un équivalent pour XML etc.

Avez-vous vraiment besoin d'un arbitraires (et variables) niveau d'imbrication? Peut-être qu'on pourrait décrire l'image plus grande -, il est susceptible d'être d'une façon plus propre de l'atteindre.
la raison d'être, je veux une structure qui me permet de modéliser des choses comme JSON / XML à l'aide d'un .Collecte NETTE. Voir mon dernier edit
Une raison quelconque vous ne voulez pas seulement pour utiliser une librairie JSON (par ex. JSON.NET) qui a déjà est une représentation appropriée?
Mon point est que si vous utilisez un JSON ou XML bibliothèque, vous ne pourriez pas besoin d'écrire un extra dictionnaire à tous les...
Pas d'excuses nécessaire, je vous assure.

OriginalL'auteur series0ne | 2012-09-22