集合类型是数据集合的常见变体,例如哈希表、队列、堆栈、字典和列表。
集合基于 ICollection 接口、IList 接口、IDictionary 接口,或其泛型集合中的相应接口。IList 接口和 IDictionary 接口都是从 ICollection 接口派生的;因此,所有集合都直接或间接基于 ICollection 接口。在基于 IList 接口的集合中(如 Array、ArrayList 或 List)或直接基于 ICollection 接口的集合中(如 Queue、Stack 或 LinkedList),每个元素都只包含一个值。在基于 IDictionary 接口的集合中(如 Hashtable 和 SortedList 类,或者 Dictionary 和 SortedList 泛型类),每个元素都包含一个键和一个值。KeyedCollection 类较为特别,因为它是带有嵌入键的值列表,因此它的行为既像列表又像字典。
泛型集合是设置强类型的最佳方式。不过,如果所用语言不支持泛型,System.Collections 命名空间中包含基集合,如 CollectionBase、ReadOnlyCollectionBase 和 DictionaryBase,这些都是抽象基类,可以扩展这些抽象基类以创建强类型的集合类。
根据存储元素的方式、对元素进行排序的方式、执行搜索的方式以及进行比较的方式的不同,集合可能也有所不同。Queue 类和 Queue 泛型类提供先进先出列表,而 Stack 类和 Stack 泛型类提供后进先出列表。SortedList 类和 SortedList 泛型类提供 Hashtable 类和 Dictionary 泛型类的排序的版本。Hashtable 或 Dictionary 中的元素只能通过元素的键访问;而 SortedList 或 KeyedCollection 中的元素既可以通过元素的键访问,也可以通过元素的索引访问。所有集合中的索引都从零开始,不过 Array 除外,它允许使用索引不从零开始的数组。
本节内容
- 数组集合类型
-
描述允许将数组视为集合处理的数组功能。
- ArrayList 和 List 集合类型
-
描述泛型和非泛型列表(最常用的集合类型)的功能。
- Hashtable 和 Dictionary 集合类型
-
描述基于哈希的泛型和非泛型字典类型的功能。
- SortedList 和 SortedDictionary 集合类型
-
描述排序的字典以及组合字典和列表功能的混合类型。
- 队列集合类型
-
描述泛型和非泛型队列的功能。
- 堆栈集合类型
-
描述泛型和非泛型堆栈的功能。
参考
- System.Collections
-
提供 System.Collections 命名空间的参考文档,该命名空间包含定义各种对象集合的接口和类。
- System.Collections.Generic
-
提供 System.Collections.Generic 命名空间的参考文档,该命名空间包含定义泛型集合的接口和类。
- ICollection
-
描述 ICollection 类的主要功能,该类定义所有非泛型集合的大小、枚举数和同步方法。
- ICollection
-
描述 ICollection 类的主要功能,该类定义操作泛型集合的方法。
- IList
-
描述 IList 类的主要功能,该类表示可按索引逐个访问的对象的非泛型集合。
- IList
-
描述 IList 类的主要功能,该类表示可按索引逐个访问的对象的集合。
- IDictionary
-
描述 IDictionary 类的主要功能,该类表示键/值对的非泛型集合。
- IDictionary
-
描述 IDictionary 类的主要功能,该类表示键/值对的泛型集合。