В течение прошлой недели я получил некоторый код и меня попросили улучшить производительность.Итак, началось с работы, но вскоре я увидел, что они используют множество HashSet<T>
объектов для хранения больших коллекций объектов (от 10000 до более 100000 объектов).В коде они используют HashSet<T>
из соображений производительности.
Единственное, что они делают, - это заполняют HashSet объектами, а затем используют некоторый Linq для выполнения запросов между несколькими коллекциями.Большинство запросов присоединяются к 1 или n HashSet или извлекают определенные объекты из коллекции с помощью First()
или Where()
.
Интересно, получим ли мы какое-либо преимущество в производительности по сравнению с обычнымList<T>
?Поскольку все методы расширения Linq, которые они используют в коде, написаны для IEnumerable<T>
.
В Интернете много статей говорят, что List будет быстрее, но некоторые говорят, что HashSet обрабатывает огромные коллекции гораздо лучше, чем List.
Надеюсь, что кто-то может дать мне больше советов.
Спасибо.