集合


 在实际编程中,常会按一定要求来处理和计算一组一组的数据,如堆栈操作、队列操作或系列数据的增、删、改、查。C#提供了数组类型来进行管理,但是这样有个缺点就是数组的大小是固定的。我们可以通过集合类来进行管理。数据集合类都位于System.Collections命名空间中,使用时需引用。

数组和集合的对比:

C# 集合和泛型

 

1、ArrayList类

ArrayList是一个可动态扩充容量的集合。

ArrayList 数组集合名 = new ArrayList();

 

 C# 集合和泛型

C# 集合和泛型

 

 

2、Hashtable类

哈希表Hashtable是一种数据字典,它将数据作为一种Key/Value保存。

Hashtable 哈希表名 = new Hashtable();

 

 C# 集合和泛型

 

键值对均是object类型,使用<hasntable实例名>[键],将返回object类型的,由键对应的数据。转化强转,使用里氏转换原则

3、Stack类

Stack这种集合按照“先进先出”或“后进先出”的原则来操作元素,称作栈集合。

Stack 栈名 = new Stack();

 

 C# 集合和泛型

 

4、Queue类

Queue 队列名 = new Queue();

 

 C# 集合和泛型

 

集合类泛型


 

为什么引用集合类泛型?

非泛型的集合,将成员对象存储为Object类型的实型,这样可以存储任何类型的元素,但是增加装箱和拆箱的性能开销。

static void Main(string[] args){
  ArrayList array = new ArrayList();
  int i = 10;
  array.Add(i);
  i =array[0];//此处报错,因为集合储存Object类型,需要(int)强制类型转化
}

以约束访问特定数据类型的方法,避免了集合的繁琐操作,专门处理某种类型。

1、List<T>类

创建列表(列表可以存储任何类型的数据,在创建列表对象的时候首先要指定你要创建的这个列表要存储什么类型的)(泛型)

 List<T>集合名称 = new List<T>();

T为元素类型,向集合添加元素需要受到T的约束。

 List<int> scoreList = new List<int>(); 
 List<int> scoreList = new List<int>(){1,2,3} 
 List<int> scoreList = new List<string>(){"one","two"} 
 var scoreList = new List<int>();
声明例子

相关文章: