C # erhält Schlüssel und Werte von ListKeyValuePairstring, string

8

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 ...

    
frog_jr 14.07.2015, 18:24
quelle

7 Antworten

11
%Vor%     
Jashaszun 14.07.2015, 18:31
quelle
5

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.

    
Robert Horvick 14.07.2015 18:31
quelle
2

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 .

  

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?

%Vor%

Weitere Informationen zu LINQ finden Sie unter LINQ (Sprachintegrierte Abfrage)

    
Simon Belanger 14.07.2015 18:33
quelle
2

Sie können NameValueCollection aus dem System.Collection.Specialized-Namespace verwenden:

%Vor%

Anwendungsbeispiel:

%Vor%

Ссылка

    
Fabjan 14.07.2015 18:32
quelle
1

Ich würde in Ihrem Fall ILookup<K,V> verwenden. Es ist wie ein Wörterbuch, aber Sie können die Werte als IEnumerable<V> mit dem gleichen Schlüssel erhalten.

%Vor%

oder einfach

%Vor%     
EZI 14.07.2015 19:56
quelle
0

1:

%Vor%

2:

%Vor%

3:

%Vor%     
serhiyb 14.07.2015 18:30
quelle
0

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%     
statue 06.10.2017 18:44
quelle

Tags und Links