c # Wörterbücher schneiden sich

9

Ich habe eine Frage zu Linq / Lambda und dem folgenden Problem:

Ich habe zwei Wörterbücher, primary und secondary ... Diese beiden Wörterbücher sind definiert als Key = string, Value = int. Ich muss das primäre Wörterbuch verkleinern, wenn sich die KEYS mit dem sekundären Wörterbuch schneiden.

d. h .:

%Vor%

Mein Versuch:

%Vor%

Das funktioniert offensichtlich nicht, weil das primaryDict.Keys.Intersect eine Liste von Schlüsseln zurückgibt ... Wie würde ich ein neues Wörterbuch wiederherstellen oder das primäre Wörterbuch paaren? Jede Hilfe wäre willkommen.

    
Stewart Basterash 21.05.2012, 12:18
quelle

3 Antworten

17

Sie könnten auf diese Weise tun:

%Vor%

oder alternativ:

%Vor%

Letzteres ist vielleicht etwas effizienter, weil es die Erstellung einer Wegwerf-Sammlung (die durch die Intersect-Methode erzeugte) vermeidet und keinen zweiten Zugriff-nach-Schlüssel zu primaryDict benötigt.

BEARBEITEN (wie Kommentar):

%Vor%     
digEmAll 21.05.2012, 12:24
quelle
4

Sie können primaryDict immer noch in Ihrer Linq-Anweisung verwenden, da Sie ein neues Wörterbuch erstellen, das erst nach der Erstellung der Variablen zugewiesen wird:

%Vor%     
BrokenGlass 21.05.2012 12:23
quelle
2

Nicht getestet:

%Vor%     
Steve Czetty 21.05.2012 12:23
quelle

Tags und Links