在 C# 開發中,開發者常困惑:為什麼聲明數組時會隱式初始化,而 List<T> 則不會?這是否意味著數組效率較低?
List 內部本質上就是封裝了一個數組。 當你創建 List<T> 實例時,其內部會初始化一個空數組(或默認容量的數組)。數組聲明時(如 int[] arr = new int[10];)會立即在托管堆上分配連續內存並零初始化;而 List<T> 的無參構造函數僅分配一個靜態只讀的空數組實例 EmptyArray,極其輕量。
除非在極度性能敏感的熱點路徑(如遊戲幀循環、高頻交易)且數據量固定,否則優先使用 List<T>。其靈活性帶來的開發維護優勢遠大於理論上可忽略不計的性能損耗。