本章主要介绍在C#中使用集合的相关知识。与数组相比,集合是另一类组合的元素。集合与数组既有相同点,又有不同点。在某些情况下,使用集合更为方便;而在某些情况下,使用数组效率更高。本章将对常用的集合进行介绍,包括ArrayList、Queue、Stack、HashTable和SortedList等。
本章主要内容
& System.Collections命名空间介绍
& ArrayList类的使用
& Queue类的使用
& Stack类的使用
& HashTable类的使用
& SortedList类的使用
System.Collections命名空间是集合类型的主要命名空间。集合是一类具有某种性质元素的组合。通俗地讲,集合就是“一堆东西”,这些“东西”被称作元素。在C#中,集合主要是指System.Collections命名空间下的类。
System.Collections命名空间下包含若干类、接口和结构,其中包含的类如下。
· ArrayList:使用大小可按需动态增加的数组。
· BitArray:管理位值的压缩数组,该值表示为布尔值。
· CaseInsensitiveComparer:比较两个对象是否相等,比较时忽略字符串的大小写。
· CaseInsensitiveHashCodeProvider:使用忽略字符串大小写的哈希算法,为对象提供哈希代码。
· CollectionBase:为强类型集合提供abstract基类。
· Comparer:比较两个对象是否相等,其中字符串比较是区分大小写的。
· DictionaryBase:为键/值对的强类型集合提供abstract基类。
· Hashtable:表示键/值对的集合。这些键/值对根据键的哈希代码进行组织。
· Queue:表示对象的先进先出集合。
· ReadOnlyCollectionBase:为强类型非泛型只读集合提供abstract基类。
· SortedList:表示键/值对的集合,这些键值对按键排序并可按照键和索引访问。
· Stack:表示对象的简单的后进先出非泛型集合。
可以看到,除了集合类外,还包含一些辅助功能的相关类。System.Collections命名空间下的接口如下。
· ICollection:定义所有非泛型集合的大小、枚举数和同步方法。
· IComparer:公开一种比较两个对象的方法。
· IDictionary:表示键/值对的非通用集合的接口。
· IDictionaryEnumerator:枚举非泛型字典的元素。
· IEnumerable:公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。
· IEnumerator:支持对非泛型集合的简单迭代。
· IEqualityComparer:定义方法以支持对象的相等比较。
· IHashCodeProvider:使用自定义哈希函数为对象提供哈希代码。
· IList:表示可按照索引单独访问的对象的非泛型集合。
在用户需要实现自己的集合类型时,会用到这些接口。System.Collections命名空间下还包含一个结构如下。
· DictionaryEntry:定义可设置或检索的字典键/值对。
以上是System.Collections命名空间的概貌。其中本章涉及的有ArrayList、Queue、Stack、HashTable和SortedList。