He estado tratando de escribir un método de extensión para imitar List.RemoveAll (Predicate).Métodos de extensión Dictionary <TKey,TValue> .RemoveAll? ¿Es posible?
Hasta ahora lo he entendido:
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;
}
Cualquier punteros? ¿Es esto una implementación completamente ingenua?
¿No le gustaría eliminar pares del diccionario haciendo que su predicado coincida solo con Key, en lugar de KeyValuePair? – base2