news 2026/4/3 6:05:59

C# ArrayList与List

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C# ArrayList与List

一、ArrayList

ArrayList:动态数组一个不固定长度的数组集合,并且可以存储不同类型的元素,例如一个arrayList对象可以存储整型、字符串、对象、数组等,但是int[]这种数组一旦创建好之后 不能后续添加元素,也就是长度是固定,并且一个数组对象只能存储一种类型的元素

ArrayList 弊端:取出元素是一个object 必须对其在进行类型转换

1 创建一个arrayList对象

int[] ints = new int[] { 1, 2, 3 }; People p1 = new People() { Name="zs"}; ArrayList arr = new ArrayList() { 1,2,3,"坤拳",true,ints,p1}; //初始化添加元素

2 取出元素 通过索引值取元素 arr[1]

//int aa = arr[0]; //数组取出的元素是object类型,如果想转成其他类型 必须强制转换 Console.WriteLine( Convert.ToInt16(arr[1]));

3 清空元素

arr.Clear();

4 添加元素

arr.Add(1); arr.Add("说得好");//添加一个元素 arr.AddRange(ints);//也可以添加一个数组

5删除元素

arr.Remove("说得好"); //删除指定元素 arr.RemoveAt(0);// 删除指定位置元素 arr.RemoveRange(0,3);// 从指定参数1位置开始删除参数个数的元素

6数组插入

arr.Add(12); arr.Add(24); arr.Insert(1, 36);//在参数1这个位置插入参数2这个元素 //arr.InsertRange(0,ints); //在指定位置插入一个数组

7修改元素
arr[1] = 48;

8数组排序 arr.Sort(); //默认的是升序排序 9indexOf() 元素的索引值 Console.WriteLine(arr.IndexOf(48)); 10count 获取数组的个数 Console.WriteLine(arr.Count); 11 Reverse();把数组里面的元素进行倒序 arr.Reverse(); 12toArray(); 把ArrayList转成Array(int[]) object[] ii= arr.ToArray();

查询可以查询一个arr[1],查询多个for 遍历
最后算法遍历元素
如果数组元素类型不一样遍历的时候把类型改成object

foreach (object i in arr) { Console.WriteLine(i+"---------"); }

二、List

ArrayList 动态数组 存储元素类型object类型,取出的时候转成对应的类型,类型不安全

List:方法和ArrayList很像 区别在于list可以指定类型进行存储,存储同一种类型数据 ,取出时候不用强制转换,保证数据类型安全

创建集合对象

List<int> list1 = new List<int>();

1 添加元素

list1.Add(1); list1.Add(2); list1.Add(3); list1.AddRange(new int[] {9,10,11}); //添加多个

2 删除

list1.Remove(11);//删除指定元素 list1.RemoveAt(list1.Count-1);//删除指定位置的元素 list1.RemoveAll(v => v % 3 == 0);//删除满足条件所有的元素

3--13

//3修改 list1[0] = 20; //4插入数据 list1.Insert(1, 10);//在索引值为1的地方插入888 //5IndexOf() 获取元素的索引值 Console.WriteLine(list1.IndexOf(888)); //6 Clear()清空集合 //list1.Clear(); 清空集合 //7Any() 有一个满足条件就为true Console.WriteLine(list1.Any(v => v > 888)); //8Average() 求序列中元素的平均值 Console.WriteLine(list1.Average()); //9Concat() 拼接俩个数组,返回的是一个新数组 list1.Concat(new int[] {36}); //10Contains() 数组是否包含2 Console.WriteLine(list1.Contains(2)); //11Sum() 求和 Console.WriteLine(list1.Sum()); //12Skip() 跳过自定的个数,返回剩余的 int[] ss = list1.Skip(1).ToArray(); //13Max() 找出序列元素最大值 Console.WriteLine(list1.Max());

查询多个使用遍历,查询一个使用索引值arr[0]

foreach (int i in list1) { Console.WriteLine(i+"-------"); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/20 15:02:44

Reddit视频制作效率瓶颈诊断与批量自动化解决方案

Reddit视频制作效率瓶颈诊断与批量自动化解决方案 【免费下载链接】RedditVideoMakerBot Create Reddit Videos with just✨ one command ✨ 项目地址: https://gitcode.com/GitHub_Trending/re/RedditVideoMakerBot 你是否遇到过这样的困境&#xff1a;深夜加班手动处理…

作者头像 李华
网站建设 2026/3/27 1:37:25

8、SUSE Linux 系统管理:磁盘配额与用户认证配置指南

SUSE Linux 系统管理:磁盘配额与用户认证配置指南 1. 磁盘配额管理 在 Linux 系统中,磁盘空间管理是一项重要任务。当没有对用户使用的磁盘空间进行限制时,用户可能会轻易地用各种数据填满硬盘。为了解决这个问题,Linux 引入了配额系统,允许为每个用户或组指定特定的存储…

作者头像 李华
网站建设 2026/3/30 21:20:19

计算机毕业设计springboot基于BS架构的大学生租房互助平台 高校学子租房互助系统的设计与实现(SpringBoot+B/S架构 )基于SpringBoot的校园合租互助平台研究与开发

计算机毕业设计springboot基于BS架构的大学生租房互助平台7qor248j &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。“开学即抢房”已成为许多大学生的噩梦&#xff1a;中介费高、…

作者头像 李华
网站建设 2026/3/20 10:05:19

32、Django Web应用开发实战:从日志查看器到数据库管理系统

Django Web应用开发实战:从日志查看器到数据库管理系统 1. Web应用概述 如今网络上充斥着各种各样的应用程序,人们的日常生活也越来越依赖这些网络应用。网络应用之所以如此受欢迎,主要有以下几个原因: - 普遍可访问性 :网络应用部署后,只要有访问权限,用户只需在浏…

作者头像 李华
网站建设 2026/4/3 3:18:13

量子计算快速上手:5步掌握Qiskit核心操作技巧

量子计算作为颠覆性的计算范式&#xff0c;正以前所未有的速度改变着我们的世界。今天&#xff0c;就让我带你走进这个神奇的量子世界&#xff0c;通过IBM开发的Qiskit量子计算框架&#xff0c;轻松开启量子编程之旅。 【免费下载链接】qiskit-metapackage Qiskit is an open-s…

作者头像 李华
网站建设 2026/3/31 7:12:36

梅州/揭阳/汕头/潮州购物中心商业美陈氛围包装设计公司

在粤东大地的版图上&#xff0c;梅州、揭阳、汕头、潮州四座城市宛如四颗具有韵味的文化明珠&#xff0c;既沉淀着深厚的历史底蕴&#xff0c;又焕发着蓬勃的现代气息。这片土地是潮汕文化的核心发源地&#xff0c;也是传统与现代商业文明交融共生的生动样本。作为城市商业空间…

作者头像 李华