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.
Ich würde in Ihrem Fall %code% verwenden. Es ist wie ein Wörterbuch, aber Sie können die Werte als %code% mit dem gleichen Schlüssel erhalten.
%Vor%oder einfach
%Vor%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 %code% importiert werden muss. Sie geben auch %code% 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)
1:
%Vor%2:
%Vor%3:
%Vor%Sie können NameValueCollection aus dem System.Collection.Specialized-Namespace verwenden:
%Vor%Anwendungsbeispiel:
%Vor%Liest du das und fragst dich, warum jemand Code gemacht hat, der ein IEnumerable & lt; KeyValuePair & lt; A, B & gt; & gt; anstelle eines Wörterbuchs & lt; A, B & gt; aber hast keine Lust zu fragen und willst einfach fertig werden?
%Vor%