Der beste Weg, mehrere Elemente, die einem Prädikat entsprechen, aus einem .NET-Wörterbuch zu entfernen?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Der beste Weg, mehrere Elemente, die einem Prädikat entsprechen, aus einem .NET-Wörterbuch zu entfernen?

Post by Anonymous »

Ich muss mehrere Elemente aus einem Wörterbuch entfernen.
Eine einfache Möglichkeit, dies zu tun, ist wie folgt:

Code: Select all

  List keystoremove= new List();
foreach (KeyValuePair k in MyCollection)
if (k.Value.Member==foo)
keystoremove.Add(k.Key);
foreach (string s in keystoremove)
MyCollection.Remove(s);
Der Grund, warum ich die Elemente im foreach-Block nicht direkt entfernen kann, ist, dass dies eine Ausnahme auslösen würde („Sammlung wurde geändert ...“).
Ich möchte Folgendes tun:

Code: Select all

 MyCollection.RemoveAll(x =>x.Member==foo)
Aber die Dictionary-Klasse stellt keine RemoveAll(Predicate Match)-Methode bereit, wie dies bei der List-Klasse der Fall ist.
Was ist der beste Weg (sowohl in Bezug auf die Leistung als auch in Bezug auf die Eleganz)?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post