wie Daten von verschachtelten Dictionary in c # holen
-
05-07-2019 - |
Frage
Ich brauche, um Daten aus verschachtelter Wörterbuch holen IN C # . Mein Wörterbuch ist wie folgt:
static Dictionary<string, Dictionary<ulong, string>> allOffset =
new Dictionary<string, Dictionary<ulong, string>>();
Ich brauche alle Schlüssel / Werte des vollen Wörterbuch zu holen, wie so dargestellt werden:
string->>ulong, string
Vielen Dank im Voraus.
Lösung
Iterate über die äußere Wörterbuch, jedes Mal die Mitglieder des verschachtelten Wörterbuch Iterieren, d.
(Ungeprüfte Code)
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]);
}
}
Andere Tipps
Eine LINQ Antwort (das liest alle Tripel):
var qry = from outer in allOffset
from inner in outer.Value
select new {OuterKey = outer.Key,InnerKey = inner.Key,inner.Value};
oder (die Zeichenfolge direkt zu erhalten):
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);
}
oder eine Zeile Lösung
allOffset.SelectMany(n => n.Value.Select(o => n.Key+"->>"+o.Key+","+ o.Value))
.ToList()
.ForEach(Console.WriteLine);
Versuch:
string s = dict["key"][_float_];
Für ganze Listen bekommen können Sie verschachtelte foreach-Schleifen verwenden:
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);
Was ist mit diesem wird das Verfahren durch alle Wörterbuchelemente aufzuzählen ...
public static IEnumerable<KeyValuePair<ulong, string>> GetValues()
{
foreach (var pair in allOffset.Values)
{
foreach (var value in pair)
{
yield return value;
}
}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow