keyvaluepair

___ qstnhdr ___ C # erhält Schlüssel und Werte von ListKeyValuePairstring, string ___ answer31414558 ___
%Vor%     
___ qstntxt ___

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

    
___ answer31414562 ___

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.

    
___ answer31416109 ___

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%     
___ answer31414588 ___

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 .

  

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)

    
___ answer31414547 ___

1:

%Vor%

2:

%Vor%

3:

%Vor%     
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ answer31414580 ___

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

%Vor%

Anwendungsbeispiel:

%Vor%

Ссылка

    
___ tag123keyvaluepaar ___ Definiert ein Schlüssel / Wert-Paar, das gesetzt oder abgerufen werden kann. ___ tag123list ___ Liste kann sich beziehen auf: eine verkettete Liste (eine geordnete Menge von Knoten, die jeweils auf ihren Nachfolger verweisen) oder eine Form eines dynamischen Arrays. Um nicht für HTML-Listen verwendet zu werden, verwenden Sie stattdessen [html-lists]. ___ answer46612056 ___

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%     
___
2
Antworten

KeyValuePair Kovarianz

Gibt es in diesem Beispiel eine bessere Möglichkeit, Covarianz nachzuahmen? Idealerweise würde ich gerne tun: %Vor% Aber KeyValuePair<TKey, TValue> ist nicht kovariant. Stattdessen muss ich tun: %Vor% Gibt es einen besseren /...
16.02.2013, 11:52
7
Antworten

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

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 KeyV...
14.07.2015, 18:24