2011-09-30 62 views

回答

14

List<T>的內部,有一個靜態大小的集合來保存您的項目。一旦你達到那個系列的容量,List<T>重新調整它的性能(對你來說可能不重要)。

通過設置初始容量,您可以避免執行這些重新調整操作。

7

每當列表需要超出其當前容量時,內存重新分配和四處移動必須發生,這需要時間和精力。

如果您事先知道列表的大小,您可以避免這種情況。

3

由於列表不需要增長,因此您的速度會有所提高。增加一個列表是O(n),其中n是當前元素的數量,並且標準List<>通過將其當前大小加倍而增長。考慮到所有事情,在列表末尾添加一個元素仍然平均是O(1)操作(這是因爲最後插入n個元素,平均每次插入n個元素(每個元素爲O(1 )操作),以及在舊緩衝區和較新緩衝區(每個操作都是O(1)操作)之間進行n次複製操作,因此每個添加都處於過期O(1))

3

這會稍微提高性能,在創建列表時分配,並且在添加更多元素時,CLR不必增加列表大小。

請注意,即使您指定了列表大小,如果您添加的元素多於預期值,它也會增加。

相關問題