Quand utiliser un HybridDictionary sur les autres Dictionnaire types?

Je suis à la recherche à la Collection classes dans MSDN pour la .Net framework.
J'ai couru dans la HybridDictionary et les états (http://msdn.microsoft.com/en-us/library/system.collections.specialized.hybriddictionary.aspx):

Implémente IDictionary à l'aide d'un ListDictionary alors que la collection est petite, puis de passer à une table de hachage quand la collection est grande.

Donc je me demandais à propos de la ListDictionary qui stipule (http://msdn.microsoft.com/en-us/library/system.collections.specialized.listdictionary.aspx)

Recommandé pour les collections qui comprennent généralement moins de 10 articles.

Qui semble désormais comme un arbitraire nombre (des articles) pour moi. Je ne trouve pas dans la documentation que le mécanisme derrière ce serait, je soupçonne les limites de ses performances auraient été liées à un certain nombre d'éléments comme 2^N (2 à la puissance N).

Maintenant je n'utilise pas le type de collection de Dictionary souvent, et les collections peuvent contenir de 10 à 30 éléments, 50 tops, en fonction de la "taille de la page'.

Mais HybridDictionary et ListDictionary nécessite unboxing et il n'y a pas de type générique contructors pour eux.

Je ne peux pas trouver une comparaison n'importe où sur la performance d'un HybridDictionary vs Dictionary.

Alors, quand utiliser cette HybridDictionary sur les autres Dictonary types?

P. S. Et si HybridDictionary commutateurs à ListDictionary ou HashTable lorsque le nombre d'éléments poussent à optimiser son fonctionnement. Pourquoi utiliser un ListDictionary? Si certaines exigences de la modification de logiciels, et soudain, un maximum de 20 éléments doivent être mis dans le ListDictionary, au lieu d'un nombre maximum de 10 articles, le code doit être re-factorisé pour HybridDictionary pour maintenir la performance?

Il y a un bon article ici qui comprend l'analyse comparative et la comparaison: dotnetperls.com/hybriddictionary
Voir la conclusion qu'une HybridDictionary montre seulement l'augmentation de la performance avec moins de 5 éléments par rapport à d'autres Dictionaryies, elle va à l'encontre de la déclaration sur MSDN et un ListDictionary effectue de mieux qu'un HashTable avec moins de 10 articles (bien strictement pas, mais vous avez mon point). Donc, ce HybridDictionary semble totalement redondant pour moi.
Je ne vois pas comment sa redondant, ListDictionary est recommandé pour être utilisé avec moins de 10 points, le HybridDictionary est pour quand tu ne sais pas exactement de la taille et il sera interrupteur automatique implémentations lorsque la taille est supérieure à 10 éléments
Correction: "L'utilisation de ListDictionary dans le code de vos projets semble totalement superflus", pourquoi ne pas toujours utiliser un HybridDictionary.
Specialized.Collections sont Specialized.Collections je pense, LOL

OriginalL'auteur Mike de Klerk | 2013-09-13