Я рассматриваю классы Collection
в MSDN для .Net framework. я побежал в HybridDictionary
и заявляет (http://msdn.microsoft.com/en-us/library/system.collections.specialized.hybriddictionary.aspx):Когда использовать HybridDictionary для других типов словарей?
Реализует 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
против Dictionary
.
Итак, когда на самом деле использовать этот HybridDictionary
над другими типами диктона?
P.S. И если HybridDictionary
переключается на ListDictionary
или HashTable
, когда количество элементов растет, чтобы оптимизировать его работу. Зачем использовать ListDictionary
? Если некоторые требования в программном обеспечении меняются, и вдруг в ListDictionary
, а не максимум из 10 элементов, необходимо добавить максимум 20 элементов, код должен быть переупорядочен до HybridDictionary
для поддержания производительности?
Существует сообщение статью, которая включает сравнительный анализ и сравнение: http://www.dotnetperls.com/hybriddictionary –
@ sa_ddam213 Увидев вывод о том, что «HybridDictionary» показывает только увеличение производительности с менее чем 5 элементами по сравнению с другими словарями, он учитывает утверждение в MSDN что 'ListDictionary' работает лучше, чем' HashTable' с менее чем 10 элементами (ну строго не, но вы получите мою точку зрения). Поэтому этот «HybridDictionary» кажется мне абсолютно лишним. –
Я не вижу, как его избыточный, 'ListDictionary' рекомендуется использовать с менее чем 10 элементами,' HybridDictionary' предназначен, когда вы точно не знаете размер, и он будет автоматически реализовывать переключение, когда размер будет больше чем 10 элементов –