Un peu d'information de base :
Comme nous l'avons dit, si vous souhaitez disposer d'une collection dynamique d'éléments, utilisez un fichier de type List<T>
. En interne, une liste utilise également un tableau pour le stockage. Ce tableau a une taille fixe, comme tout autre tableau. Une fois qu'un tableau est déclaré comme ayant une taille, celle-ci ne change pas. Lorsque vous ajoutez un élément à une List
il est ajouté au tableau. Au départ, le List
démarre avec un tableau qui, je crois, a une longueur de 16. Lorsque vous essayez d'ajouter le 17ème élément au tableau List
Ce qui se passe, c'est qu'un nouveau tableau est alloué, qui fait (je pense) deux fois la taille de l'ancien, donc 32 éléments. Ensuite, le contenu de l'ancien tableau est copié dans le nouveau tableau. Ainsi, alors qu'un List
peut sembler dynamique à l'observateur extérieur, mais en interne, elle doit également se conformer aux règles.
Et comme vous l'avez peut-être deviné, la copie et l'allocation des tableaux n'est pas gratuite. Il faut donc chercher à en avoir le moins possible et pour cela, vous pouvez spécifier (dans le constructeur de List
) une taille initiale du tableau, qui, dans un scénario parfait, est juste assez grande pour contenir tout ce que vous voulez. Cependant, il s'agit d'une micro-optimisation et il est peu probable que cela ait une quelconque importance pour vous, mais il est toujours bon de savoir ce que vous êtes en train de faire. en fait faire.