Abrufen von Werten von Dictionary<string, List<string>>
Ich ein Wörterbuch mit Schlüssel mit einer Liste von strings.
Dictionary<string, List<string>> keyValueListDict=new Dictionary <string,List<string>>();
List<string>valueList = new List<string>();
Meine keyValueListDict
ist gefüllt mit einzigartigen Schlüsseln und valueLists. Für jeden Wörterbuch-Eintrag, ich brauche für die Ausgabe der Schlüssel, gefolgt von den Inhalt der Liste (Wert).
Update: ich denke, das problem kommt von der Eingabe der Werte
So bin ich abrufen eines Objekts aus meiner db
foreach(object)
{
key=object.key;
foreach(string value in object.othercomponent)
{
list.add(value);
}
keyValueListDict.add(key,list);
list.clear();
}
Die Anzahl der für die Werte in der Liste auf 0 zurückgesetzt, wenn ich aus der Liste löschen, damit ich das ausfüllen kann für das nächste Objekt, aber ich kann nicht herausfinden, wie dies zu vermeiden
- Sie sind nur versuchen, machen ein Riesen -
List<string>
? - Nein, für jeden Schlüssel, ich bin outputtuing die Schlüssel und die Werte in der Liste mit dem Schlüssel verbunden, dann habe ich einen reset der Zeichenfolge.
- Es ist nicht ganz klar, was das Ergebnis, die Sie suchen ist, als ein Ergebnis haben Sie, wie 5 Antworten, die alle etwas ein bisschen anders. Wollen Sie eine Zeichenfolge, die die Verkettung der einzelnen Wert oder jedes Schlüssel-Wert-paar? Oder Sie wollen Sie eine Liste mit den einzelnen Wert, oder jedes Schlüssel-Wert-paar? Jede Lösung ist hier, so scheint es, aber Sie sollten versuchen, ein wenig mehr explizite nächsten Zeit.
- Ich brauche für die Ausgabe der Werte für einen bestimmten Schlüssel, sorry, wenn ich nicht selbst deutlich früher. Also ich habe bereits die Schlüssel, und ich brauche, um die Ausgabe der Werte für eine bestimmte Taste in einem string.
InformationsquelleAutor PrOjEkTeD | 2015-03-26
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen so etwas zu erstellen, eine Ausgabe der Wörterbuch-Eintrag-Taste, gefolgt von der kombinierten Werte.
Wenn Sie nur den Schlüssel (und nicht den gesamten
KeyValuePair
), können Sie erstellen Sie eine Kopie von Ihrem Wörterbuch, mit etwas (siehe auch diese Frage über die immerKeyValuePair
direkt aus einem Wörterbuch)Wenn Sie benötigt werden, um die Ausgabe der gesamte Wörterbuch, könnte man etwas wie das hier tun:
Arbeiten .NETTO-fiddle
String value = String.Join( ",", keyValueListDict[key].ToArray());
Console.WriteLine(combindedString)
aber was istcombindedString
? Sie rief die andere SacheoutputString
. Blick auf dieses .NET fiddleKeyValuePair
. Und es ist nur zu zwingen, es in die form die Methode akzeptiert. AKA Faulheit.Versuchen Sie dies:
Versuchen Sie dies:
Dies ist die grundlegende Vorgehensweise zur Iteration über ein dictionary:
List
?Ich hat dieses problem heute, und ich wusste nicht, wie gezwungen zu sein, meine Daten ändern die Struktur, die ich wirklich wollte, zu halten die Liste. Dieser arbeitete für mich.
var reportTabGridItems = expectedReportTabsWithReportItems.Where(x => x.Key == reportTabName).Select(x => x.Wert).FirstOrDefault();
Ich wollte nur eine Zeile, daher habe ich geheftet an den FirstOrDefault() zu Ende, die seit dem letzten wählen Sie zurück zu bringen eine Liste von Liste und will ich nur eins (oder null, falls nicht gefunden).
Hoffe, dies hilft Ihnen.