当前位置: 首页 > news >正文

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+"-------"); }
http://www.cnnetsun.cn/news/36785.html

相关文章:

  • Moveable DOM操作库:5个核心场景解决前端交互难题
  • ComfyUI与Zapier集成:触发式自动生产业务流
  • 10、Linux 高级访问控制:ACL 深度解析
  • 12、手动配置 Linux 网络:从路由设置到工具使用的全面指南
  • Walrus去中心化存储系统:新手快速上手指南
  • 30、Python并发编程:线程、进程与调度全解析
  • 34、Python数据持久化:简单与关系序列化的全面解析
  • GPS测量工具终极指南:从零开始掌握精准定位分析
  • 3 SQL注入|数据类型与提交方式|笔记
  • 3D架构设计新体验:iCraft Editor快速上手攻略
  • 25、树莓派多媒体应用全攻略
  • 敏捷开发实战指南:从思维到落地的渐进式掌握
  • 中文词典数据库完整使用指南:解锁中华语言文化宝藏
  • 3D建模革命:5步掌握多视角智能生成技术实战指南
  • 振动信号数据集:工业设备故障诊断的终极指南
  • MATLAB实现基于黏菌优化算法(SMA)进行无人机三维路径规划
  • WindowResizer:5分钟学会窗口尺寸强制调整的终极解决方案
  • [Windows] Adobe Acrobat Pro DC 绿色精简版(PDF核心功能工具包)
  • Rust包管理器Cargo的7大核心功能:从零开始构建高效开发环境
  • 轻松上手深林算法:从零开始的深度随机森林实战指南 [特殊字符]
  • 西安电子科技大学数字图像处理完整教学资源包
  • 伺服系统设计完整指南:从理论到实战的深度解析
  • Freeze:三步实现EDR绕过的零检测Shellcode执行方案
  • 基于微信小程序的学习复习小程序(源码+lw+部署文档+讲解等)
  • PaperAI终极指南:如何用AI快速分析医学论文
  • 基于Java+SpringBoot的高校机动车认证信息管理系统的设计与实现(源码+lw+部署文档+讲解等)
  • 基于SpringBoot的甘肃特产销售系统的设计与实现(程序+文档+讲解)
  • Zephyr RTOS音频处理终极指南:告别卡顿与延迟
  • 22、SELinux系统管理全解析
  • 代码绘图深度解析:3步掌握DevOps架构可视化高效方案