zoukankan      html  css  js  c++  java
  • 列表

    .NET Framework为动态列表提供了泛型类List<T>。这个类实现了IList、ICollection、
    IEnumerable、IList<T>、ICollection<T> 和IEnumerable<T>接口。

    创建列表

    调用默认的构造函数,就可以创建列表对象。在泛型类List<T>中,必须为声明为列表的值指
    定类型.ArrayList是一个非泛型列表,它可以将任意0bject类型作为其元素。

    使用默认的构造函数创建一个空列表。元素添加到列表中后,列表的容量就会扩大为可接纳4
    个元素。如果添加了第5个元素,列表的大小就重新设置为包含8个元素。如果8个元素还不够,
    列表的大小就重新设置为包含16个元素。每次都会将列表的容量重新设置为原来的2倍。

    var intList = neW List<int>();

    如果列表的容量改变了,整个集合就要重新分配到一个新的内存块中。在Lis<T>泛型类的实
    现代码中,使用了一个T类型的数组。通过重新分配内存,创建一个新数组,Array.Copy()方法将旧
    数组中的元素复制到新数组中。为节省时间,如果事先知道列表中元素的个数,就可以用构造函数
    定义其容量.

    List<int> intList = new List<int>(10);

    使用Capacity属性可以获取和设置集合的容量。

    intList.Capacity=20;如果已经将元素添加到列表中,且不希望添加更多的元素,就可以调用TrimExcess()方法,去除不需要的容量。但是,因为重新定位需要时间,所以如果元素个数超过了容量的90%,TrimExcess()方法就什么也不做。

    intList.TrimExcess();

    集合初始值设定项

    还可以使用集合初始值设定项给集合赋值。

    var intList = new List<int>(){1,2};
    var stringList = new List<string>() {"one", "two"};

    添加元素

    使用Add()方法可以给列表添加元素,如下所示。实例化的泛型类型定义了Add()方法的参数
    类型:
    var intList = neW List<int>();
    intList.Add(1);
    intList.Add(2);
    Var stringList = new List<string>();
    stringList.Add("one");
    stringList.Add("two");

    使用List<T>类的AddRange()方法,可以一次给集合添加多个元素。因为AddRange()方法的参
    数是IEnumerable<T>型的对象。

    插入元素

    使用Insert()方法可以在指定位置插入元素。

    访问元素

    实现了IList和IList<T>接口的所有类都提供了一个索引器,所以可以使用索引器,方法是通过
    传送元素号来访问元素。第一个元素可以用索引值0来访问。指定intList[3],可以访问列表中的第
    4个元素。

    删除元素

    删除元素时,可以利用索引,也可以传递要删除的元素。下面的代码通过把3传递给RemoveAt()
    方法,删除第4个元素:

    intList.RemoveAt(3);

    RemoveRange()方法可以从集合中删除许多元素。它的第一个参数指定了开始删除的元素索引,
    第二个参数指定了要删除的元素个数。

    搜索有不同的方式在集合中搜索元素。可以获得要查找的元素的索引,或者搜索元素本身。可以使用的方法有Indexof()、LastIndexof()、FindIndex()、FindLastIndex()、FindLast()。如果只检查元素是否存在,List<T>就提供了Exists()方法。

    排序

    List<T>可以使用sort()方法对元素排序。sort()方法使用快速排序算法,比较所有的元素,直
    到整个列表排好序为止。

    类型转换

    使用List<T>类的ConvertAll<TOutpuo>()方法,可以把所有类型的集合转换为另一种类型。

    只读集合创建集合后,它们就是可读写的。当然,集合必须是可读写的,否则就不能给它们填充值了。但是,在填充完集合后,可以创建只读集合。酵合的AsReadOnly()方法返回ReadOnlyCollection<T>类型的对象。ReadOnlyCollection<T>实现的接口与峥合相同,但所有修改集合的方法和属性都抛出NotsuppotedException异常。

  • 相关阅读:
    一个别人的心得(转发的)
    常见的游戏设计技术
    查看更新
    xml,json和各种序列化工具的对比
    python游戏环境搭建
    快速制作游戏
    子网和掩码
    nat
    pycharm使用技巧
    IP的面向无连接状态
  • 原文地址:https://www.cnblogs.com/miffylf/p/4028346.html
Copyright © 2011-2022 走看看