C# 數組、ArrayList、List、Dictionary的用法與區別

前言數組

  在工做中常常遇到C#數組、ArrayList、List、Dictionary存取數據,可是該選擇哪一種類型進行存儲數據,對於初學者的我一直不知道該怎麼取捨。因而抽空好好看了下他們的用法和比較,在這裏總結下來,後面有須要改進的再更新。性能

初始化spa

數組:code

int[] buff = new int[6];

ArrayList:blog

ArrayList buff = new ArrayList();

List:索引

List<int> buff = new List<int>();

Dictionary:內存

Dictionary<int,string> buff = new Dictionary<int,string>;

分析比較string

  從上面初始化的幾種類型能夠看出,他們都屬於引用類型。其中數組、List、Dictionary在初始化的時候須要指定其元素類型,而ArrayList不須要指定類型。而在其中只有數組在初始化時設置了其大小。io

  數組:在初始化時必須指定其大小和類型,他在內存中是連續存儲的,因此能夠看出數組的索引速度是很是快的。在肯定了數組的長度和類型後,選擇數組存儲數據是比較好的選擇。不適合插入操做。table

  ArrayList:在初始化的時候不須要指定其大小和類型。他能夠存儲不一樣的數據類型,可是在存取得過程當中會引發裝箱和拆箱,下降了性能。插入操做方便。

  List:在初始化的時候必須指定其類型,可是不須要指定大小,因此他不會像ArraryList那樣在存取過程當中引發裝箱和拆箱操做。在類型相同的狀況下,List和數組的性能至關。插入操做方便。

  Dictionary:在初始化的時候也必須指定其類型,並且他還須要指定一個Key,而且這個Key是惟一的。正由於這樣,Dictionary的索引速度很是快。可是也由於他增長了一個Key,Dictionary佔用的內存空間比其餘類型要大。他是經過Key來查找元素的,元素的順序是不定的。

類型 肯定大小 肯定類型 索引速度 性能
數組 Y Y 很快 最高
ArrayList N N 通常
List N Y 很快
Dictionary N Y 最快 通常

 

 

 

 

 

注:以上內容若有描述不妥,請留言,分享知識,共成長!

相關文章
相關標籤/搜索