Мне нужно удалить несколько элементов из Словаря. Простой способ сделать это:
List<string> keystoremove= new List<string>();
foreach (KeyValuePair<string,object> k in MyCollection)
if (k.Value.Member==foo)
keystoremove.Add(k.Key);
foreach (string s in keystoremove)
MyCollection.Remove(s);
Причина, по которой я не могу напрямую удалить элементы в блоке foreach, заключается в том, что это вызовет исключение ( "Collection был изменен..." )
Я хотел бы сделать следующее:
MyCollection.RemoveAll(x =>x.Member==foo)
Но класс Dictionary < > не предоставляет метод RemoveAll (Predicate < > Match), как это делает List < > Class.
Какой лучший способ (как умный, так и элегантный) сделать это?