Capacité initiale de types de collection, par exemple, le Dictionnaire, la Liste

Certains types de collection dans .Net disposer en option d'une "Capacité Initiale" paramètre du constructeur. Par exemple:

Dictionary<string, string> something = new Dictionary<string,string>(20);

List<string> anything = new List<string>(50);

Je n'arrive pas à trouver ce que le défaut initial de la capacité d'accueil est de ces objets sur le site MSDN.

Si je sais que je vais seulement le stockage de 12 ou alors des éléments dans un dictionnaire, n'est-il pas logique de définir la capacité initiale de quelque chose comme 20?

Mon raisonnement est, en supposant que la capacité se développe comme il le fait pour un StringBuilder, qui double chaque fois que la capacité est touché, et chaque réaffectation est coûteux, pourquoi ne pas pré-régler la taille de quelque chose que vous savez dans votre prise de données, avec certains chambre supplémentaire juste au cas où? Si la capacité initiale est de 100, et je sais que je vais seulement besoin d'une douzaine ou alors, il semble comme si le reste de la mémoire est allouée pour rien.

InformationsquelleAutor Neil N | 2010-05-03