Лучший способ удалить несколько элементов, соответствующих предикату, из словаря .NET?C#

Место общения программистов C#
Ответить
Anonymous
 Лучший способ удалить несколько элементов, соответствующих предикату, из словаря .NET?

Сообщение Anonymous »

Мне нужно удалить несколько элементов из словаря.
Простой способ сделать это следующим образом:

Код: Выделить всё

  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);
Причина, по которой я не могу напрямую удалить элементы в блоке foreach, заключается в том, что это вызовет исключение («Коллекция была изменена...»)
Я хотел бы сделать следующее:

Код: Выделить всё

 MyCollection.RemoveAll(x =>x.Member==foo)
Но класс Dictionary не предоставляет метод RemoveAll(Predicate Match), как это делает класс List.
Как лучше всего (как с точки зрения производительности, так и с точки зрения элегантности) это сделать?>

Подробнее здесь: https://stackoverflow.com/questions/469 ... dictionary
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»