Если у меня есть, скажем, 100 элементов, которые будут сохранены в словаре, я должен инициализировать его таким образом?
var myDictionary = new Dictionary<Key, Value>(100);
Насколько я понимаю, словарь .NET внутренне изменяет размеры, когда достигает заданной нагрузки, и что порог загрузки определяется как отношение емкости.
Это предполагает, что если 100 слов были добавлены в вышеупомянутый словарь, то при изменении одного из элементов он изменил бы свой размер. Изменение размера словаря - это то, чего я бы хотел избежать, так как он снижает производительность и тратит память.
Вероятность хэширования коллизий пропорциональна загрузке в словаре. Следовательно, даже если словарь не изменяет свой размер (и использует все свои слоты), производительность должна ухудшаться из-за этих коллизий.
Как лучше всего решить, к какой емкости инициализировать словарь, если вы знаете, сколько элементов будет в словаре?