Я рассматриваю классы Collection
в MSDN для .Net-структуры.
Я столкнулся с HybridDictionary
и в нем говорится (http://msdn.microsoft.com/en-us/library/system.collections.specialized.hybriddictionary.aspx):
Реализует IDictionary с помощью ListDictionary, когда коллекция невелика, а затем переключается на Hashtable, когда коллекция становится большой.
Итак, я задавался вопросом о ListDictionary
, который гласит (http://msdn.microsoft.com/en-us/library/system.collections.specialized.listdictionary.aspx)
Рекомендуется для коллекций, которые обычно включают менее 10 элементов.
Теперь это похоже на произвольное число (элементов) для меня. Я не могу найти в документации, каков механизм этого, я подозревал, что граница производительности была бы связана с рядом элементов, таких как 2 ^ N (2 по мощности N).
Теперь я часто использую тип коллекции Dictionary
, и коллекции могут содержать от 10 до 30 элементов, 50 вершин, в зависимости от размера страницы.
Но HybridDictionary
и ListDictionary
требует распаковки, и для них нет конструкторов типов.
Я не могу найти сравнение в любом месте о производительности HybridDictionary
vs Dictionary
.
Итак, когда на самом деле использовать этот HybridDictionary
по сравнению с другими типами диктонаров?
P.S. И если HybridDictionary
переключается на ListDictionary
или HashTable
, когда количество элементов растет, чтобы оптимизировать его работу. Зачем использовать ListDictionary
? Если некоторые требования в программном обеспечении изменяются, и вдруг в ListDictionary
должно быть помещено не более 20 элементов, а не максимальное количество из 10 элементов, код должен быть переопределен до HybridDictionary
для поддержания производительности?