C#集合ArrayList与List的使用说明书

Posted 老虎中的小白Gentle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#集合ArrayList与List的使用说明书相关的知识,希望对你有一定的参考价值。

在C#中ArrayList与List是常用的集合,List是微软后面开发出来的

ArrayList

ArrayList的优点:

  • ArrayList大小是按照其中存储的数据来动态扩充与收缩的

  • ArrayList 在声明对象时并不需要指定它的长度

  • ArrayList可以很方便地进行数据的添加插入删除

           ArrayList aList = new ArrayList();
            //插入
            aList.Add(123);
            aList.Add("ABC");
            aList.Insert(1, 123 + "ABC"); //123 + "ABC" ->(隐式转换)"123ABC"
            //移除
            aList.RemoveAt(0); //索引处
            aList.Remove("ABC");

ArrayList的缺点:

  • ArrayList在存储数据时使用object类型进行存储的

  • ArrayList不是类型安全的,使用时很可能出现类型不匹配的错误
    就算都插入了同一类型的数据,使用时我们也需要将它们转化为对应的原类型来处理

  • ArrayList 存储在装箱和拆箱操作,导致其性能低下

装箱与拆箱的例子

           //装箱
            int i = 123;
            object o = i;

            //拆箱
            object o1 = 123;
            int i1 = (int)o1; //强制类型装换

List

  • List集合与ArrayList由于都继承了相同的接口,故使用与ArraList相似

  • 所谓的接口目的可以简单理解为限制和对顶类型行为即类型方法的一种手段

  • 在声明List集合时,需要同时为其声明List集合数据的对象类型

例子:

 public void TestList()
        {
          

            List<int> IntList = new List<int>();
            //加入
            IntList.Add(1);
            IntList.Add(2);
            IntList.Add(3);
            IntList.Add(123);
            IntList.Insert(1, 1111);
            //删除
            IntList.RemoveAt(0);
            IntList.Remove(123);
            IntList.Clear();  //移除集合中的所有元素


            //使用对象初始化器
            List<string> StrList = new List<string>() //括号有没有都行
            {
                "hello",
                "world",
                "gentle"
            };
            StrList[2] = "333";

            //加入自定义的类型
            List<Person> persons = new List<Person>();
            Person person = new Person()
            {
                Age = 18,
                Height = 175,
                Name = "gentle"

            };
            persons.Add(person);
            persons.RemoveAt(0);


        }
        public class Person
        {
            public int Age { get; set; }
            public int Height { get; set; }
            public string Name { get; set; }
        }

总结

  • 集合与数组比较类似,都用于存放一组值
  • 集合中提供了特定的方法能直接操作集合中的数据,并提供了不同的集合类来实现特定的功能
  • 集合简单的来说是数组的升级版,它可以动态的对集合的长度(也就是集合最大元素的个数)进行定义和维护
  • List泛型的好处指通过允许指定泛型或方法操作的特定类型,减少了类型强制转换的需要和运行时出错的可能性,泛型提供了类型安全,但没有增加开销。

以上是关于C#集合ArrayList与List的使用说明书的主要内容,如果未能解决你的问题,请参考以下文章

C#中ArrayList和泛型集合List方法概述概述

C#中的常见集合类的比较

ArrayList、linklist、list的区别

C# DataGridView List集合 刷新

Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

C# 集合及集合内排序 问题 速求