Ich habe ein Wörterbuch, wo die Objekte sind (z.B.):
- "A", 4
- "B", 44
- "bye", 56
- "C", 99
- "D", 46
- "6672", 0
Und ich habe eine Liste:
- "A"
- "C"
- "D"
Möchte ich entfernen, aus meinem Wörterbuch alle Elemente, deren Schlüssel nicht in meiner Liste, und am Ende mein Wörterbuch:
- "A", 4
- "C", 99
- "D", 46
Wie kann ich tun?
Es ist einfacher zu konstruieren neue Wörterbuch enthalten Elemente, die sind in der Liste:
Wenn es wichtig ist, ändern Sie den vorhandenen Wörterbuch (z.B. es ist eine readonly-Eigenschaft der Klasse)
Hinweis: die ToList () - Aufruf - es ist wichtig, sich zu materialisieren, die Liste der keys zu entfernen. Wenn Sie versuchen, läuft der code ohne die Materialisierung der
keysToRemove
werden, werden Sie wahrscheinlich mit einer Ausnahme, die besagt etwas wie "Die Auflistung wurde geändert".Remove
undm
ist zweifelhaft, da ich einen Satz. Nicht, dass mein code ist schneller, aber der Schnellste ist wahrscheinlich @J0HN die Lösung von unten sowieso,myDictionary.Keys.Except(myList).ToList().ForEach(x => myDictionary.Remove(x));
.Code:
Beispiel:
Ausgabe: