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 最快 通常

 

 

 

 

 

注:以上内容若有描述不妥,请留言,分享知识,共成长!

相关文章
相关标签/搜索