在 .Net 技術中,使用 List<> 來儲存資料是很常見的。List<> 是一個可以動態增長的泛型集合型別,可以儲存任何型別的資料。
但是,在實際使用中,很多人並不注意給定 List<> 的初始大小,導致在資料量較大時,List<> 的效能可能不盡如人意。
下面,我們以一個簡單的程式碼範例來說明為什麼應該考慮給定 List<> 的初始大小。
假設我們要儲存 100 萬個整數,不考慮初始大小的情況下,我們的程式碼可能如下:
var numbers = new List<int>();
|
上面的程式碼在執行時,會依次往 List 中新增 100 萬個整數。但是,如果你執行該程式碼,你會發現它的執行速度很慢,而且內記憶體佔用也很大。
為了解決這個問題,我們可以在範例化 List<> 的時候,指定它的初始大小。這樣做的好處在於,List<> 在擴容的時候,就不需要按照預設的演演算法(通常是原來的容量的一倍)進行擴容,而是使用我們設定的初始大小。這樣可以避免記憶體佔用過多,提升 List<> 的執行效率。
如果我們指定 List<> 的初始大小為 100 萬,那麼程式碼如下:
var numbers = new List<int>(1000000);
|
上面的程式碼執行效率會比不考慮初始大小的情況下要高得多。
當然,這並不意味著你每次使用 List<> 的時候都要指定它的初始大小。如果你的資料量不是很大,或者你不太關心效能,那麼不指定初始大小也沒有什麼問題。
但是,如果你希望提高程式碼的執行效率,或者你的資料量非常大,那麼你應該考慮指定 List<> 的初始大小。這樣,你的程式碼執行效率會更高,記憶體佔用也會更少。
如果你要使用 List<> 儲存資料,我們建議你在實際開發中遵循以下幾條原則:
總之,指定 List<> 的初始大小對於提高程式碼的執行效率和記憶體佔用有很大的好處。如果你的資料量較大,或者你希望提高程式碼的效能,那麼應該考慮指定 List<> 的初始大小。
以上參考資料提供了有關 List<> 的更多資訊,包括 List<> 的用法、泛型集合型別的基礎知識等。希望可以為你提供幫助。
希望本文能對你有所幫助。感謝你的閱讀。
本文采用 Chat OpenAI 輔助注水澆築而成,如有雷同,完全有可能。
- 本文連結: https://www.newbe.pro/ChatAI/Why-set-the-initial-capacity-of-List/
- 版權宣告: 本部落格所有文章除特別宣告外,均採用 BY-NC-SA 許可協定。轉載請註明出處!