.NET 2.0泛型集合类与.NET 1.1集合类的区别(一)

本文阐述.NET 2.0泛型集合类与.NET 1.1集合类在使用中的区别,不涉及泛型优势及使用介绍,假设读者已会简单泛型编程,还提及使用的.NET 2.0版本为2.0.50215.44,可能与正式版有出入。

本文旨在阐述.NET 2.0泛型集合类与.NET 1.1集合类在使用中的区别,而不是介绍泛型的优势或者使用。这篇文章假设你已经会简单使用泛型来编程。
本文章使用.NET 2.0的2.0.50215.44版本,与正式版本可能有出入。

1、命名空间
1.1中关于集合的命名空间包括:

System.Collections常见的动态数组ArrayList、字典基础类DictionaryBase和集合基础类Collection以及其他。
System.Collections.Specialized 常见的强类型的集合类,以字符串为键位检索的NameObjectCollectionBase,可存储字符串的NameValueCollection。
在.NET 2.0中,除掉以前的命名空间外,还增加了关于泛型的命名空间,包括:
System.Collections.Generic核心的泛型集合实现,包括动态数组List、字典Dictionary;
System.Collections.ObjectModel 面向建立对外对象模型中常见的Collection、集合和字典的融合体KeyedCollection;

需要注意的是,在.NET 1.1中,mscorlib.dll实现的Queue、Stack,对应到.NET 2.0的泛型实现,移动到System.dll中了。另外,.NET 2.0的泛型实现并不是与原先一一对应的,他将以前几个重复功能的类合并成了一个泛型的实现,并新增了一些原先没有的新类,例如LinkedList。

2、System.Collections.Generic.List<T>
List<T>是原先ArrayList的泛型实现,是最基础的、性能最好和功能最强大的“动态数组”,他被建议使用于程序内部需要集合处理的地方,但并不被推荐直接暴露给外界程序,因为他的“入口”实在太多。如果需要暴露你的集合请参考使用Collection<T>。事实上,许多泛型的集合类内部就是使用List<T>,例如Collection<T>。

List<T>实现了排序功能,通过Sort方法可以实现各种负责的排序,因此,他也就不需要有1.1中SortedList的对应实现了。

List<T>除掉支持List原先的功能外,还提供了一些有意思的功能,例如:
List<T>.ForEach(System.Action<T>)方便了简单的循环使用,可以参见: http://notgartner.com/posts/1510.aspx
System.Collections.Generic.List<T>.ToArray()可以直接返回强类型的数组,这样就不必先建立一个数组,拷贝,再返回这么麻烦了。

List<T>实现了泛型的IList<T>,还实现了非泛型的IList接口,关于接口的不同,将在下篇文章中介绍
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值