通常情况下,建议您使用泛型集合,因为这样可以获得类型安全的直接优点而不需要从基集合类型派生并实现类型特定的成员。此外,如果集合元素为值类型,泛型集合类型的性能通常优于对应的非泛型集合类型(并优于从非泛型基集合类型派生的类型),因为使用泛型时不必对元素进行装箱。
下面的泛型类型对应于现有的集合类型:
-
Dictionary 是对应于 Hashtable 的泛型类。
-
Collection 是对应于 CollectionBase 的泛型类。Collection 可以用作基类,但是与 CollectionBase 不同的是它不是抽象的,因而更易于使用。
-
ReadOnlyCollection 是对应于 ReadOnlyCollectionBase 的泛型类。ReadOnlyCollection 不是抽象的,它具有一个构造函数,该构造函数使其更易于将现有的 List 公开为只读集合。
-
Queue、Stack 和 SortedList 泛型类分别对应于与其同名的非泛型类。
其他类型
有几种泛型集合类型没有对应的非泛型类型:
-
LinkedList 是一个通用链接列表,它提供运算复杂度为 O(1) 的插入和移除操作。
-
SortedDictionary 是一个排序的字典,其插入和检索操作的运算复杂度为 O(log n),这使得它成为 SortedList 的十分有用的替代类型。
-
KeyedCollection 是介于列表和字典之间的混合类型,它提供了一种存储包含自己键的对象的方法。