Ich möchte nur die Schlüssel und nicht die Werte eines Wörterbuchs.
Ich konnte noch keinen Code dafür bekommen. Die Verwendung eines anderen Arrays erwies sich als zu viel Arbeit, da ich auch remove verwende.
Wie erhalte ich eine Liste der Schlüssel in einem Wörterbuch?
c#
list
dictionary
Athiwat Chunlakhan
quelle
quelle
yourDictionary
es Teil des Objekts ist, abgeleitet von der Funktion oder dem Namen eines Parameters.Sie sollten in der Lage sein, nur zu betrachten
.Keys
:quelle
Um eine Liste aller Schlüssel zu erhalten
System.Linq wird in .NET Framework 3.5 oder höher unterstützt. Siehe die folgenden Links, wenn Sie Probleme bei der Verwendung von System.Linq haben
Visual Studio erkennt System.Linq nicht
System.Linq-Namespace
quelle
using System.Linq;
Ich muss wissen, welche Antworten zu ignorieren sind. Entschuldigung :).ToList()
ein Fehler ausgelöst wurde, als ich ihn so oft verwendet hatte, also kam ich hierher, um nach einer Antwort zu suchen, und mir wurde klar, dass die Datei, in der ich arbeitete, keine hatteusing System.Linq
:)Dictionary<string, object>.KeyCollection' does not contain a definition for 'ToList'
Marc Gravells Antwort sollte für Sie funktionieren.
myDictionary.Keys
gibt ein Objekt , dass GeräteICollection<TKey>
,IEnumerable<TKey>
und ihre nicht-generische Pendants.Ich wollte nur hinzufügen, dass Sie, wenn Sie auch auf den Wert zugreifen möchten, das Wörterbuch wie folgt durchlaufen können (modifiziertes Beispiel):
quelle
Die Frage ist etwas schwierig zu verstehen, aber ich vermute, dass das Problem darin besteht, dass Sie versuchen, Elemente aus dem Wörterbuch zu entfernen, während Sie über die Schlüssel iterieren. Ich denke, in diesem Fall haben Sie keine andere Wahl, als ein zweites Array zu verwenden.
Wenn Sie generische Listen und Wörterbücher anstelle einer ArrayList verwenden können, würde ich, aber das oben Genannte sollte einfach funktionieren.
quelle
Ich kann all diese verschlungenen Antworten nicht glauben. Angenommen, der Schlüssel ist vom Typ: string (oder verwenden Sie 'var', wenn Sie ein fauler Entwickler sind): -
quelle
using System.linq;
Oder so:
quelle
Für ein Hybridwörterbuch verwende ich Folgendes:
quelle
Ich habe dies oft verwendet, um den Schlüssel und den Wert in einem Wörterbuch abzurufen: (VB.Net)
(layerList ist vom Typ Dictionary (Of String, Integer))
quelle