前言
在工作中经常遇到c#数组、arraylist、list、dictionary存取数据,但是该选择哪种类型进行存储数据,对于初学者的我一直不知道该怎么取舍。于是抽空好好看了下他们的用法和比较,在这里总结下来,后面有需要改进的再更新。
初始化
数组:
1
|
int[] buff = new int[6];
|
arraylist:
1
|
arraylist buff = new arraylist();
|
list:
1
|
list<int> buff = new list<int>();
|
dictionary:
1
|
dictionary< int , string > buff = new dictionary< int , string >;
|
分析比较
从上面初始化的几种类型可以看出,他们都属于引用类型。其中数组、list、dictionary在初始化的时候需要指定其元素类型,而arraylist不需要指定类型。而在其中只有数组在初始化时设置了其大小。
数组:在初始化时必须指定其大小和类型,他在内存中是连续存储的,所以可以看出数组的索引速度是非常快的。在确定了数组的长度和类型后,选择数组存储数据是比较好的选择。不适合插入操作。
arraylist:在初始化的时候不需要指定其大小和类型。他可以存储不同的数据类型,但是在存取得过程中会引起装箱和拆箱,降低了性能。插入操作方便。
list:在初始化的时候必须指定其类型,但是不需要指定大小,所以他不会像arrarylist那样在存取过程中引起装箱和拆箱操作。在类型相同的情况下,list和数组的性能相当。插入操作方便。
dictionary:在初始化的时候也必须指定其类型,而且他还需要指定一个key,并且这个key是唯一的。正因为这样,dictionary的索引速度非常快。但是也因为他增加了一个key,dictionary占用的内存空间比其他类型要大。他是通过key来查找元素的,元素的顺序是不定的。
注:以上所述是小编给大家介绍的c#中数组、arraylist、list、dictionary的用法与区别浅析(存取数据),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!