zoukankan      html  css  js  c++  java
  • C#集合ArrayList、泛型集合List(3)

    数组的制约:局限性。有多少放多少,要想追加,就必须重新再定义一个数组,这就造成了资源的极大浪费而且性能消耗也比较大。因此此操作不太推荐。所以集合就来了。

    int[] arr=new[]{1,2,3,4}

    创建集合:

    ArrayList list=new ArrayList();
    list.Add(12);
    list.Add(22);
    list.Add(32);
    Console.WriteLine(list.Count);//输出元素个数 3

    在原有基础上在追加一个:实现动态添加数据,而避免再次开辟一个资源空间。

    ArrayList list=new ArrayList();
    list.Add(12);
    list.Add(22);
    list.Add(32);
    Console.WriteLine(list.Count);//输出元素个数 3
    list.Add(24);
    Console.WriteLine(list.Count);//输出元素个数 4

    集合特点:

    特点1.可以伸缩。

    取值:和数组一样通过下标

    Console.WriteLine(list[0]); //输出12
    Console.WriteLine(list[1]); //输出22
    for(var i=0;i<list.Length;i++)
    {
          Console.WriteLine(list[i]); //输出所有元素  
    }

    当然,也可以把object类型放入list中,但是此操作在取值时需要进行拆箱操作,无法直接操作里面的元素,例:

    特点2:类型未知

    list.Add(12);
    list.Add(12.2);

    list.Add("abcd"); foreach(var item in list)
    {

    Console.WriteLine((int)list[i]); //拆箱操作(解析double和string类型报错)
    }

    List:1.极力推荐泛型集合,数组的数据类型一致性,集合的可伸缩性

    List<int> list=new List<int> //只能存放 int
    list.Add(1);
    list.Add(2);
    list.Add(3);
    list.Add(5);
    list.Add(6);
    Console.WriteLine(list.Count); //输出5
    foreach(var item in list)
    {
        //此时不需要进行拆箱操作,因为只有int类型,节省了性能的消耗
        Console.WriteLine(list[item])
    }
    List<string> list=new List<string> //只能存放 string

    删除元素本身:Remove,如果要删除的数据类型是数组或者对象,不可以直接删除,须先找到

    list.Remove(1);
    list.Remove(5);
    Console.WriteLine(item); //输出 2 3 6

    例如:

     找到要删除的数据:

    根据下标删除:RemoveAt(),特别注意,根据下标进行删除,原有的下标会发生改变

    例如:

    list.RemoveAt(0); //删除下标为0,删除成功,下一个元素的下标将会发生改变
    list.RemoveAt(0);
    list.RemoveAt(0); 
    list.RemoveAt(0);
    list.RemoveAt(0); 
    console.writeLine(list.Count); //元素全部删除

    一旦删除的个数大于集合本身元素个数,就会报索引值超出范围的问题。

    list.clear(); //清空所有元素

    list.insert();插入值参数1:插入位置的下标,参数2:对应的值

    例如:

    list.insert(2,66);

    元素排序、降序操作

    foreach(var item in list.Order(m=>m))
    {
        console.WriteLine(list); //升序操作
    };
    
    foreach(var item in list.OrderDescending(m=>m))
    {
        console.WriteLine(list); //降序操作
    
    };
    console.WriteLine(list.sum()); //元素总和
    console.WriteLine(list.Average()); //元素平均数
    console.WriteLine(list.max()); //元素最大值
    console.WriteLine(list.min());  //元素最小值
    console.WriteLine(list.Count(m=>m%2==0));//元素中偶数的个数
  • 相关阅读:
    Python日期和时间
    Python实现ATM
    XML的ElementTree解析方式
    Python多线程
    Python文件操作
    Python错误和异常
    Python基础第四课
    html页面引入另一个html页面
    微信直播video安卓端始终在最顶层的解决方法
    设计模式之 外观模式
  • 原文地址:https://www.cnblogs.com/hcyesdo/p/12780396.html
Copyright © 2011-2022 走看看