Innerhalb von List<T>
gibt es eine Sammlung mit statischer Größe, in der sich Ihre Artikel befinden. Sobald Sie die Kapazität dieser Sammlung erreicht haben, wird die Größe von List<T>
angepasst. Dies ist ein Leistungseinbruch (möglicherweise für Sie von Bedeutung).
Wenn Sie die Anfangskapazität einstellen, vermeiden Sie, dass Sie diese Größenanpassung durchführen müssen.
Immer wenn eine Liste ihre aktuelle Kapazität überschreiten muss, müssen Speicherzuweisungen und das Verschieben von Daten erfolgen, was Zeit und Aufwand erfordert.
Wenn Sie im Voraus genau wissen, wie groß die Liste sein wird, können Sie das vermeiden.
Sie werden ein wenig beschleunigen, weil die Liste nicht vergrößert werden muss. Das Erweitern einer Liste ist O (n), wobei n die aktuelle Anzahl der Elemente ist und der Standard List<>
durch Verdoppeln der aktuellen Größe wächst. Alles in allem ist das Hinzufügen eines Elements am Ende einer Liste immer noch im Durchschnitt eine O (1) -Operation (weil am Ende n Elemente eingefügt werden, haben Sie im Durchschnitt n Inserts bis zum Ende (jeweils ein O (1)) ) Operation) und n kopieren Operationen zwischen alten Puffer und neueren Puffer (jeweils eine O (1) -Operation), so dass jede add auf O (1))
Dadurch wird die Leistung leicht verbessert, da der erforderliche Speicher beim Erstellen der Liste zugewiesen wird und die CLR die Listengröße beim Hinzufügen weiterer Elemente nicht erhöhen muss.
Beachten Sie, dass selbst wenn Sie eine Listengröße angeben, diese trotzdem erhöht wird, wenn Sie mehr Elemente als erwartet hinzufügen.