迁移到.NET 2.0+后,有没有理由继续使用systems.Collections命名空间(除了维护遗留代码)?是否应该始终使用泛型命名空间?
在大多数情况下,泛型集合的执行速度将比非泛型集合更快,并且可以为您提供强类型集合的好处.比较System.Collections和System.Collections.Generic中可用的集合,您将获得以下"迁移":
Non-Generic Generic Equivalent ------------------------------------------------------------ ArrayList ListBitArray N/A CaseInsensitiveComparer N/A CollectionBase Collection Comparer Comparer DictionaryBase Dictionary Hashtable Dictionary Queue Queue ReadOnlyCollectionBase ReadOnlyCollection SortedList SortedList Stack Stack DictionaryEntry KeyValuePair ICollection N/A (use IEnumerable or anything that extends it) IComparer IComparer IDictionary IDictionary IEnumerable IEnumerable IEnumerator IEnumerator IEqualityComparer IEqualityComparer IList IList
ICollection是不可变的(没有成员可以更改集合的内容),而ICollection
从该列表中,唯一没有通用对应的非泛型类是BitArray和CaseInsensitiveComparer.