来源:
http://topic.csdn.net/u/20110416/22/6b6b8d83-7e7f-47d9-a584-e5351d0e0c25.html?1794
对于C#中的初学者而言,先了解四种集合就足够了。
两种普通集合 :ArrayList HashTable
两种泛型: List<T> Dictionary<string,value>
一、ArrayList
数组相信楼主肯定了解过,数组是有长度限制的。在使用数组之前必须确定数组的长度。但是我们很多
时候,是在程序运行过程中,才可以确定存储数据的个数的。那么,这个时候,就需要用到集合。
ArrayList,位于System.Collections命名空间下,也就是说,如果要使用ArrayList,就必须
引入该命名空间。
该种集合也被称为"动态数组",原因就在于它的容量是可以根据需求按照一定的规律自动扩容的。
该种集合可以存入任意类型的数据,存入后,都一致转变为了Object类型。那么对于值类型来说,
就是进行了一次装箱操作,非常消耗性能。
简单介绍一下它的用法
Add():向集合中添加元素,参数为变量名,有一个整型返回值,表示该元素在集合中的索引。
Remove():删除集合中的元素,参数为变量名,无返回值。删除后的集合,将重新排列集合中元素的索引。
RemoveAt():删除集合中元素,与上个方法不同的是,该种方法是按照索引来删除的。参数为元素索引。
Count:属性。表示当前集合的元素数量。整型返回值。
Capacity:属性。表示当前集合中的容量。
TrimToSize():压缩集合容量。很多时候,当我们确定了不再向集合中添加元素的时候,我们要压缩一下
集合容量,以避免造成空间的浪费。
另外,介绍一下它的读取操作,因为存进去的元素都会变为Object类型,所以读取的时候需要进行类型
转换。
如果需要遍历循环的话,因为该集合是按照元素的索引来进行访问的,所以我们完全可以使用for循环
来进行遍历。
C# codefor(int i = 0;i < 集合.Count;i ++){}
二、HashTable
同ArrayList一样,也是位于System.Collections命名空间下。
该种集合存的是一个键值对。一个键值对应一个值。
所以,该种集合的访问方式于ArrayList不同,是按照键的值来进行访问的。
Add():添加元素。两个参数,第一个为键,第二个为值。
Remove():删除,参数为键值。
Clear():清空集合中的所有元素。
Keys:属性。集合的键值集合。遍历循环可以使用。
Values:属性。集合的值的集合。遍历循环可以使用。
该集合存入的也是自动转换为Object类型,所以读取的时候需要进行类型转换。
遍历循环时,需要利用foreach。
C# code
foreach(string key in list.Keys){}
foreach(Object value in list.Values){}
三、List<T>
位于System.Collections.Generic命名空间下。
为ArrayList的泛型版本。
该种集合严格限制存入的元素类型。
T的意思就是表示可以存入该集合中的元素类型。其他的不允许进入该集合。
一些用法与ArrayList相同。
不同的是,读取的时候,不再需要进行类型转换,也就是说,减少了装箱和拆箱的步骤,大大提高了
程序运行的性能。
四、Dictionary<string,value>
位于System.collections.Generic命名空间下。
为HashTable的泛型版本。
该种集合也严格的限制存入元素的类型。
string表示的是存入的集合的元素的键值。声明的时候必须指定。
value表示的值的类型。声明的时候也必须指定。
其他用法与HashTable相同。
读取不再需要进行类型转换。