Ich habe versucht, eine Erweiterungsmethode zu schreiben, um List.RemoveAll (Prädikat) nachzuahmen.Erweiterungsmethoden Wörterbuch <TKey,TValue> .RemoveAll? Ist es möglich?
Bisher habe ich diese bekam:
public static void RemoveAll<TKey,TValue>(this Dictionary<TKey,TValue> dict,
Predicate<KeyValuePair<TKey,TValue>> condition)
{
Dictionary<TKey,TValue> temp = new Dictionary<TKey,TValue>();
foreach (var item in dict)
{
if (!condition.Invoke(item))
temp.Add(item.Key, item.Value);
}
dict = temp;
}
Alle Zeiger? Ist das eine völlig naive Umsetzung?
Möchten Sie nicht Paare aus dem Wörterbuch löschen, indem Sie Ihr Prädikat nur nach Schlüssel und nicht nach KeyValuePair anpassen? – base2