.net 贬型 list

我以前经常使用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类对应的范型。它包括下列方法:

  • Add允许向List的结尾添加对象。
  • AddRange将一个集合的内容添加到List的结尾。
  • BinarySearch使用二进制搜索算法在被排序的List里或者其中的一部分里寻找某个元素。
  • Clear清除List里的内容(也就是说,删除所有的东西)。
  • Contains确定List里是否含有某个元素。
  • ConvertAll把所有的List元素转换成为另外一种类型。
  • CopyTo把List里的所有内容复制到另外一个数组里。
  • Exists确定List里是否含有符合条件的元素。
  • Find搜索符合特定的条件的元素。
  • FindAll搜索符合某些条件的所有元素。
  • FindIndex搜索符合条件的元素索引。
  • FindLast搜索符合特定条件的元素最后一次出现的地方。
  • FindLastIndex搜索符合特定条件的元素最后一次出现的地方,并返回其索引。
  • ForEach对每个List项目采取某个动作。
  • GetEnumerator返回一个在List里迭代的计数器。
  • GetRange返回List里元素的子集。
  • IndexOf返回符合某个值的元素的第一个索引。
  • LastIndexOf返回符合某个值的元素的最后一个索引。
  • Remove从List里删掉某个元素第一次的出现。
  • RemoveAll从List里删除符合条件的所有元素。
  • RemoveAt用某个索引从List里删除元素。
  • RemoveRange从List里删除元素组。
  • Reverse颠倒List元素的顺序。
  • Sort利用键值给List元素排序。

这个列表虽然没有列出所有的方法,但是它概要说明了List类提供的各种功能。此外,还有其他一些可用的属性,包括计算(List中项目的数量)和容量(也就是在不需要调整大小的情况下List能够容纳的项目数量)。

posted @ 2009-03-12 21:33  杰仔  阅读(1224)  评论(0编辑  收藏  举报