cómo obtener datos de un diccionario nested en c #

Necesito obtener datos de un diccionario nested EN C # . Mi diccionario es así:

static Dictionary<string, Dictionary> allOffset = new Dictionary<string, Dictionary>(); 

Necesito recuperar todas las claves / valores del diccionario completo, representados así:

 string->>ulong, string 

Gracias por adelantado.

Iterar sobre el diccionario externo, cada vez que se repitan los miembros del diccionario nested, es decir,

(Código no probado)

 foreach(var key1 in dc.Keys) { Console.WriteLine(key1); var value1 = dc[key1]; foreach(var key2 in value1.Keys) { Console.WriteLine(" {0}, {1}", key2, value1[key2]); } } 

Una respuesta LINQ (que lee todos los triples):

 var qry = from outer in allOffset from inner in outer.Value select new {OuterKey = outer.Key,InnerKey = inner.Key,inner.Value}; 

o (para obtener la cadena directamente):

 var qry = from outer in allOffset from inner in outer.Value select outer.Key + "->>" + inner.Key + ", " + inner.Value; foreach(string s in qry) { // show them Console.WriteLine(s); } 

O una solución de línea

 allOffset.SelectMany(n => n.Value.Select(o => n.Key+"->>"+o.Key+","+ o.Value)) .ToList() .ForEach(Console.WriteLine); 

tratar:

 string s = dict["key"][_float_]; 

Para obtener listas completas puede usar bucles foreach nesteds:

  StringBuilder sb=new StringBuilder(); foreach (var v in dict) { sb.Append(v.Key+"=>>"); foreach (var i in v.Value) { sb.Append(i.Key + ", " + i.Value); } sb.Append(Environment.NewLine); } Console.WriteLine(sb); 

¿Qué pasa con esto, el método se enumerará a través de todos los elementos del diccionario …

 public static IEnumerable> GetValues() { foreach (var pair in allOffset.Values) { foreach (var value in pair) { yield return value; } } }