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