C# []、Array、List、ArrayList 區別

[]是針對特定類型、固定長度的。

Array是針對任意類型、固定長度的。

List是針對特定類型、任意長度的。

ArrayList是針對任意類型、任意長度的。ArrayList是數組的複雜版本。ArrayList 類提供在大多數 Collections 類中提供但不在 Array 類中提供的一些功能。

Array的容量是固定的,而ArrayList的容量是根據需要自動擴展的。如果更改了ArrayList.Capacity屬性的值,則自動進行內存重新分配和元素複製。ArrayList提供添加、插入或移除某一範圍元素的方法。

在Array中,您只能一次獲取或設置一個元素的值。使用Synchronized 方法可以很容易地創建ArrayList的同步版本。而Array將一直保持它直到用戶實現同步爲止。

ArrayList提供將只讀和固定大小包裝返回到集合的方法。而Array不提供。

Array提供 ArrayList所不具有的某些靈活性。例如:

  •  可以設置 Array的下限,但ArrayList的下限始終爲零。
  •  Array可以具有多個維度,而ArrayList始終只是一維的。

特定類型(不包括Object)的Array的性能比ArrayList要好,這是因爲 ArrayList的元素屬於Object類型,所以在存儲或檢索值類型時通常發生裝箱和取消裝箱。

要求一個數組的大多數情況也可以代之以使用ArrayList。它更易於使用,並且通常具有與Object類型的數組類似的性能。

Array位於System命名空間中;ArrayList位於System.Collections 命名空間中。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章