淺談C#中數組、ArrayList和List三者的區別

前言:數組、ArrayList和List可謂一脈相承,後者彌補前者的不足,但沒有完全取代前者的先天優勢。詳情請見本人另一篇博文:深究C#中數組、ArrayList和List三者的區別

一、數組

數組概念不僅是在C#語言中最早出現的,在其他編程語言也不例外,該類型的數據在內存中是連續存儲的且帶有索引的,所以查找速度非常快,賦值也很簡單。 但是它也存在很大的缺陷:在數組插入新元素不方便,在聲明數組的同時要指定數組的長度,如果定義太長就會造成內存浪費,定義太短就會造成數據溢出的錯誤,爲了彌補這個缺陷,ArrayList登上舞臺。

二、ArrayList

ArrayList無需再指定數組的長度,對數據元素的新增、修改、刪除和在任意位置的插入等操作都很方便,使用前需要增加System.Collections的引用。但是它也存在缺陷:在插入不同類型的數據是被允許的,那是因爲ArrayList會把所有插入其中的數據當作爲object類型來處理,造成類型不安全的問題隱患,在檢索賦值的時候可能會提出類型不匹配的錯誤,且在存取數據的過程中,會造成很大的性能耗損,爲了彌補這缺陷,List泛型登上舞臺。

三、List泛型

List泛型它的用法跟ArrayList類似,限定List集合內數據的對象類型,避免類型不安全的問題,同時也避免存取數據的過程,造成很大的性能耗損。

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