一、C#集合简介
集合与数组比较类似,都用于存放一组值,但集合中提供了特定的方法能直接操作集合中的
数据,并提供了不同的集合类来实现特定的功能。
集合简单的说就是数组的升级版。他可以动态的对集合的长度(也就是集合内最大元素的个
数)进行定义和维护!
所有集合类或与集合相关的接口命名空间都是 System.Collection。
在该命名空间中提供的常用接口:
IEnumerable 用于迭代集合中的项,该接口是一种声明式的接口
IEnumerator 用于迭代集合中的项,该接口是一种实现式的接口
ICollection .NET 提供的标准集合接口,所有的集合类都会直接或间接地实现这个接口
IList 继承自 IEnumerable 和 ICollection 接口,用于提供集合的项列表,并允许访问、
查找集合中的项
IDictionary继承自 IEnumerable 和 ICollection 接口,与 IList 接口提供的功能类似,但集合中的项是以键值对的形式存取的
IDictionaryEnumerator 用于迭代 IDictionary 接口类型的集合
二、动态数组
C# ArrayList 类(动态数组)是一个最常用的集合类,与数组的操作方法也是最类似的。
ArrayList 代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。
但是,与数组不同的是,ArrayList 可以使用索引在指定的位置添加和移除项目,动态数组
会自动重新调整它的大小。
同时 ArrayList 也允许在列表中进行动态内存分配、增加、搜索、排序各项。
创建 ArrayList 类的对象需要使用该类的构造方法,如下表所示:
构造方法 作用
ArrayList() 创建 ArrayList 的实例,集合的容量是默认初始容量
ArrayList(ICollection c) 创建 ArrayList 的实例,该实例包含从指定实例中复制的元素,并且初始容量
与复制的元素个数相同
ArrayList(int capacity) 创建 ArrayList 的实例,并设置其初始容量
构造方法的使用:
1 ArrayList listl=new ArrayList();
2 ArrayList list2=new ArrayList(listl);
3 ArrayList list3=new ArrayList(20);
在 C# 语言中提供了集合初始化器,允许在创建集合实例时向集合中添加元素,代码如下:
1 ArrayList list4 = new ArrayList(){l,2,3,4};
由于在集合中存放的值允许是任意类型,能使用 var 关键字来定义任意类型的变量。
1 foreach(var v in list4)
2 {
3 Console.WriteLine(v);