集合
非泛型集合:
主要有ArrayList Hashtable Queue SortedList Stack BitArray。
所有这些集合都实现了IEnumerable和ICollection接口,都支持foreach迭代,实现IList接口的集合共有一个ArrayList;实现IDictionary接口的集合类共有两个SortedList和Hashtable;Queue BitArray以及Stack这三个集合直接实现IEnumerable和ICollection接口。
ArrayList实现了IList IEnumerable和ICollection接口,和Array很相似,但是ArrayList是集合是具体类,而Array是数组是抽象类,前者可实例化,后者不能,后者是所有数组的基类。ArrayList集合的元素只能是System.Object类型,因此foreach迭代器访问集合中元素取出来的是object类型。
Hashtable实现了IDictionary IEnumerable和ICollection接口,每一对键/值保存在一个DictionaryEntry中,因此Hashtable集合实际上也是DictionaryEntry实例对象的集合,当使用枚举器访问一个Hashtable集合时,得到的是DictionaryEntry类型,保存了key和value。
SortedList和Hashtable相似,但不同的是SortedList支持基于键的排序。
Queue Stack 迭代取出的都是object类型。
BitArray类实现了一个位结构,是一个二进制位(0和1)的集合,BitArray的值表示true或者false,因此迭代取出的是bool类型。
泛型集合类图:
List<T>类是Arraylist类的泛型等效版本,实现三对接口:IEnumerable<T>和IEnumerable ICollection<T>和ICollection IList<T>和IList。
主要有ArrayList Hashtable Queue SortedList Stack BitArray。
所有这些集合都实现了IEnumerable和ICollection接口,都支持foreach迭代,实现IList接口的集合共有一个ArrayList;实现IDictionary接口的集合类共有两个SortedList和Hashtable;Queue BitArray以及Stack这三个集合直接实现IEnumerable和ICollection接口。
ArrayList实现了IList IEnumerable和ICollection接口,和Array很相似,但是ArrayList是集合是具体类,而Array是数组是抽象类,前者可实例化,后者不能,后者是所有数组的基类。ArrayList集合的元素只能是System.Object类型,因此foreach迭代器访问集合中元素取出来的是object类型。
Hashtable实现了IDictionary IEnumerable和ICollection接口,每一对键/值保存在一个DictionaryEntry中,因此Hashtable集合实际上也是DictionaryEntry实例对象的集合,当使用枚举器访问一个Hashtable集合时,得到的是DictionaryEntry类型,保存了key和value。
SortedList和Hashtable相似,但不同的是SortedList支持基于键的排序。
Queue Stack 迭代取出的都是object类型。
BitArray类实现了一个位结构,是一个二进制位(0和1)的集合,BitArray的值表示true或者false,因此迭代取出的是bool类型。
泛型集合类图:
![]() |
List<T>类是Arraylist类的泛型等效版本,实现三对接口:IEnumerable<T>和IEnumerable ICollection<T>和ICollection IList<T>和IList。
还没人赞这篇日记