我以前经常使用Lotus Domino平台及其LotusScript语言。这门语言中我最喜欢的一个特性是List对象;它会简化使用相同对象的集合。后来我发现.NET框架2.0语言里也有一个类似(甚至更加强大)的特性。
范型
.NET框架2.0引入了一个叫做范型(generics)的重要概念。虽然范型常常都是用C#语言来讨论的,但是它事实上是.NET中间语言(Intermediate Language,IL)里的一个重要特性,所以它在所有的.NET语言里都有。.NET是类别安全语言,所以编译器会检查变量分配是否合法,如果有问题它就会提示你。
类型安全特性在使用集合对象的.NET 1.1里消失了,因为集合可以容纳一切东西。在访问单独的集合元素时,你必须把它们归为正确的类型——这就是范型的作用。使用范型的集合会保留集合的一般性质,但是在被实例化的时候,通过为集合定义对象类型,类型安全被加入。
System.Collections.Generic命名空间含有用来定义范型集合的接口和类,它可以让你创建强类型集合。反过来,它们提供了比非范型强类型集合更好的类型和性能。我们将把注意力放到这样一个集合上——List。
List类
你可以使用System.Collections.Generic.List类来表示一个可以通过索引来访问的强类型对象的列表。这个类为搜索、排序和操控列表的内容提供了方法。微软的文档将List类描述为与ArrayList类对应的范型。它包括下列方法:
这个列表虽然没有列出所有的方法,但是它概要说明了List类提供的各种功能。此外,还有其他一些可用的属性,包括计算(List中项目的数量)和容量(也就是在不需要调整大小的情况下List能够容纳的项目数量)。