关于.Net2005 泛型的认识--List

2009年3月7日星期六

关于.Net2005 泛型的认识--List

前段时间,接到一公司的面试电话(我都不知道她是怎么知道有我这么个人存在的)。电话面试我的是位小姑娘(全凭耳朵听出来的),其中有道关于泛型的题。“请问泛型转换值类型需要拆箱操作吗?”我当时傻拉!为啥,因为都没来的急接触泛型啊。不用说拉,飞来的机会又飞走了。

之后,我开始尝试了解泛型。



List,它是.Net2005一个新的功能,泛型集合。引用 using System.Collections.Generic 名空间。

为方便理解,你可以把它看作是一个裸漏的数据容器,给它稍加修饰,装上数据类型,就变成一个拥有特殊功能的容器。如下事例:是一个存储string 类型的泛型集合。

List lStrList = new List();

lStrList.Add("Monday");
lStrList.Add("Tuesday");
lStrList.Add("Wednesday");
lStrList.Add("Thursday");
lStrList.Add("Friday");
lStrList.Add("Saturday");
lStrList.Add("Sunday");

this.Refresh();
foreach (string str in lStrList)
{
...
}

这里,lStrList 是一个string类型的泛型集合(容器)。它有自己的Add、Insert、Remove、Sort等方法,方便我们去对这个集合进行操作。List 可以包含众多的类型,如int、 string、decimal、Control...等数据类型。它没有ArrayList装箱、拆箱的烦琐,也不会额外占用你的系统资源,与非泛型集合相比,提高了程序响应速度。



非泛型与泛型对照表

非泛型集合类 泛型集合类
ArrayList List
HashTable DIctionary
Queue Queue
Stack Stack
SortedList SortedList

0 评论:

发表评论