Как эффективно обрезать количество записей в словаре? - PullRequest
2 голосов
/ 22 апреля 2010

У меня было List<myClass> myList для хранения списка предметов.

Когда мне нужно было обрезать это (отменить любое количество предметов выше некоторого порога), я использовал:

 myList.RemoveRange(threshold, myList.Count - threshold);

где порог - это максимальное количество вещей, которые может содержать список

Теперь я обновил тип данных до Dictionary<key, myClass> myDictionary

Как я могу сделать то же самое: отменить все записи выше некоторого порога. (Неважно, какие из них отбрасываются)

Полагаю, я мог бы перейти через коллекцию ключей и вручную удалить все пары ключ / значение. Но я надеялся, что найдется более элегантное решение.

1 Ответ

3 голосов
/ 22 апреля 2010

Этот код обрезает Dictionary с именем dict до максимального размера, указанного maxSize.

foreach (var obj in dict.Keys.Skip(maxSize).ToList()) dict.Remove(obj);
...