集合、枚举器和迭代器
C#支持四种常用集合类型:非泛型的、专用的、基于位的和泛型的。
非泛型:非泛型集合用于实现一些基本的数据结构,包括动态数组、栈和队列,它们也包括“字典(dictionary)”,可以在其中存储“键值”对。必须明确的一点是,非泛型集合操作的是object 类型的数据。因此,它们能够用来存储任何类型的数据,不同类型的数据也可以混合存储在同一个集合中。当然,由于存储的是object引用,因此这种类型不是类型安全的。非泛型集合的类和借口位于System.Collections名称和空间中。
专用:专用集合用于操作特殊类型的数据,或以特殊的方式执行操作。例如,有专门处理字符串的集合,也有使用单独链表的专用集合。专用集合的生命位于System.Collections.Specialized;名称空间中。
基于位:Collection API 定义了一个基于位的集合,BitArray。BitArray支持位运算,如AND和XOR。因此,它与其他集合的功能大部相同。BitArray定义在System.Collections名称空间中。
泛型:泛型集合提供了几种标准的数据结构的泛型实现,如链表、栈、队列和字典。由于它们是泛型集合,因此都是类型安全的。这意味着只有与集合类型相兼容的项才能存储在泛型集合中,因此可以避免以为的类型不匹配。泛型集合定义在System.Collections.Generic中。
枚举器概念是所有集合的基础,它实现了非泛型几口IEnumerator和IEnumerable以及泛型接口IEnumerator<T> 和IEnumerable<T>。枚举器提供了依次访问集合众的所有元素的标准方法。