c# 常用集合介绍
1.ArrayList
ArrayList类似于数组,有人也称它为数组列表。ArrayList可以动态维护,而数组的容量是固定的。
它的索引会根据程序的扩展而重新进行分配和调整。和数组类似,它所存储的数据称为元素,它所保存的元素数就是它的容量。默认初始容量为0,在使用它时,需引入命名空间System.Connections;以下代码可以定义一个ArrayList:
using System.Collections;
//创建容量为0的ArrayList对象
ArrayList myList = new ArrayList();
//创建容量为5的ArrayList对象
ArrayList myList = new ArrayList();
//获取对象中实际包含的元素数
int num = myList.Count();
ArrayList通过Add()方法添加元素,其方法返回一个Int类型的值,这个值代表所添加的元素在集合中的索引。
参数:如果向ArrayList中添加的元素是值类型,那么这些元素就会自动装箱处理转换为Object引用类型,然后保存,所以ArrayList中的所有元素都是对象的引用。
删除ArrayList中的元素有三种方法,分别为:
对象名.RomoveAt(int index);
对象名.Romove(Object value);
对象名.Clear();(这种方法会将集合中的所有元素删除,俗称”清空”~~~)
2.HashTable
C# /提供了一种称为HashTable的数据结构,通常称为哈希表,有的人称它为”字典”.HashTable的数据是通过键(Key)和值(Value)来组织的,同ArrayList一样,它也属于System.Collections命名空间中,它所存放的每个元素都是键/值对.以下为HashTable的常用方法和属性:
属性名称:Count 说明:获取包含在HashTable中键/值对的数目
属性名称:Keys 说明:获取包含在HashTable中键的集合
属性名称:Values 说明:获取包含在HashTable中值的集合
方法名称:Add(Object key,Object Value)说明:将带有指定键和值的元素添加到HashTable中
方法名称:Remove(Object Key)说明:从HashTable中移除带有特定键的元素
方法名称:Clear() 说明:从HashTable中移除所有元素
和ArrayList不同,访问HashTable元素时可以直接通过键名来获取具体值,同样,由于值类型是Object.所以当得到一个值时也需要通过类型转换得到指定类型的对象.
3.泛型集合:List
在介绍泛型集合前,我们有必要来了解了解什么是泛型:
泛型是C#2.0中的一个新特性。泛型引入了一个新概念:类型参数。通过使用类型参数(T),减少了运行时强制转换成装箱操作的风险。通过泛型集合可以最大限度的重用代码、保护类型的安全及提高性能。
定义一个List泛型集合的方法如下:
List 对象名 = new List();
List添加元素、获取元素、删除元素以及遍历和ArrayList用法都是类似的,但List保障了类型的安全性。在获取元素时无需进行类型转换.下面我们把List和ArrayList作以比较
不用点:List对所保存元素做类型约束,而ArrayList可以增加任意类型。添加、读取值类型元素List无需拆箱装箱,而ArrayList需要做拆箱、装箱处理。
相同点:通过索引访问集合中的元素,添加、删除元素方法相同
4.泛型集合Dictionary
它具有泛型的全部特性,编译时检查类型约束,获取元素时无需类型转换,并且它存储数据的方式和HashTable类似。也是通过Key/Value对元素保存的。定义语法为:
Dictionary对象名 = new Dictionary
中的K表示集合中Key的类型,V表示Value的类型,它的含义和List是相同的.例如:
Dictionary engineers = new Dictionary();
在这个集合中,Key类型是string类型,Value是SE类型。下面我们把Dictionary和HashTable作以比较:
不同点:Dictionary对所保存的元素做类型约束,而HashTable可以增加任何类型。Dictionary添加、读取值类型元素无需拆箱、装箱,而HashTable需要做拆箱、装箱处理
相同点:通过Key获取Value,添加、删除、遍历元素方法相同