Gegeben eine Liste:
%Vor%(HINWEIS: Es gibt mehrere Werte für den Schlüssel "qwer" und mehrere Schlüssel für den Wert "asdf".)
1) Gibt es eine bessere Möglichkeit, eine Liste aller Schlüssel zurückzugeben, als nur eine foreach in der KeyValuePair-Liste zu machen?
2) Gibt es eine bessere Möglichkeit, eine Liste aller Werte für einen bestimmten Schlüssel als eine foreach zurückzugeben?
3) Und dann, wie wäre es mit der Rückgabe einer Liste von Schlüsseln für einen bestimmten Wert?
Danke ...
Es klingt, als würden Sie etwas wie:
nutzen %Vor%Es wäre relativ einfach, mit einem Dictionary und List eine Basis-Multilabel-Dictionary-Klasse zu erstellen.
Dies Blogbeitrag spricht mehr über Microsofts MultiDictionary-Typ, der über NuGet verfügbar ist.
Nun, du könntest definitiv deinen LINQ benutzen. Aber es ist nicht "besser" (in Bezug auf die Leistung), da das Schleifen bereits schnell ist. Es ist vielleicht lesbarer (persönliche Präferenz). Beachten Sie bei allen folgenden Antworten, dass der Namespace System.Linq
importiert werden muss. Sie geben auch IEnumerable<T>
zurück, die lazy geladen sind (ausgeführt, wenn iteriert wird). Wenn Sie eine konkrete Liste zurückgeben möchten, können Sie die % co_de aufrufen % Erweiterung .
%Vor%Gibt es eine bessere Möglichkeit, eine Liste aller Schlüssel zurückzugeben, als nur eine foreach auf der KeyValuePair Liste zu machen?
%Vor%Gibt es eine bessere Möglichkeit, eine Liste aller Werte für einen bestimmten Schlüssel als eine foreach zurückgeben?
%Vor%Und wie wäre es dann mit einer Liste von Schlüsseln für einen bestimmten Wert?
Weitere Informationen zu LINQ finden Sie unter LINQ (Sprachintegrierte Abfrage)
Tags und Links c# list keyvaluepair