C# list集合
一、list集合基本使用
1.添加元素
① 单个元素添加
List<int> list = new List<int>();for (int i = 0; i < 3; i++){list.Add(i);}//输出:0,1,2
②初始化时添加元素
List<int> list2 = new List<int> { 1, 2, 3 };//输出:0,1,2
③集合中添加集合
List<int> list2 = new List<int> { 1, 2, 3 };List<int> list3 = new List<int>();list3.AddRange(list2);//输出:0,1,2
2.删除元素
①删除集合中匹配项元素,未找到匹配元素,删除失败,返回false
List<int> list = new List<int> { 1, 5, 7, 2, 8 };bool b= list.Remove(3); // 删除元素 3Console.WriteLine(b); //false 删除失败
List<int> list = new List<int> { 1, 2, 2, 2, 3 };bool b = list.Remove(3); // 删除元素 3Console.WriteLine(b); //true 删除成功 输出:1,2,2,2
②删除集合中指定索引元素,索引从零开始
List<int> list = new List<int> { 1, 2, 3, 4, 5 };list.RemoveAt(2); // 删除索引为 2 的元素,即元素 3 输出结果:1,2,4,5
③删除集合中一定范围内的元素,索引从零开始
List<int> list = new List<int> { 1, 2, 3, 4, 5 };list.RemoveRange(0, 2); //删除一定范围内元素,从0开始,删除2个 输出结果:3,4,5
④删除集合中符合条件的数据
List<int> list = new List<int> { 1, 2, 3, 4, 5 };list.RemoveAll(i => i % 2 == 0); // 删除所有偶数元素,输出结果1,3,5
3.改变集合中的元素 (不重要,不常用)
4.查找集合中的元素
①查找集合中匹配项元素,未找到匹配元素,删除-1,找到返回从0开始的索引
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };int index = list.IndexOf(5); // 返回4 未找到返回-1
②根据指定的条件查找符合条件的所有元素,并返回一个新的List<T>集合
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };List<int> newList = list.FindAll(x => x > 3); // 返回{ 4, 5 }
③使用Contains方法判断元素是否存在
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };bool contains1 = list.Contains(3); // 返回truebool contains2 = list.Contains(6); // 返回false
二、list集合进阶使用
1、排序
①升序方法1
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };list.Sort(); //对集合内元素进行升序排列 输出:1,2,3,6,7,9
①升序方法2
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };list.Sort((a, b) => a.CompareTo(b)); //对集合内元素进行升序排列 输出:1,2,3,6,7,9
②降序方法1
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };list.Sort(); //先升序list.Reverse(); //翻转元素,达到降序的目的 输出:9,7,6,3,2,1
②降序方法2
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };list.Sort((x, y) => y.CompareTo(x)); // 降序 输出:9,7,6,3,2,1
2、求集合内全部元素平局值
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };double d= list.Average(); //计算集合内全部数据的平均值
3、求集合内全部元素之和
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };int i= list.Sum(); //计算集合内所有元素之和 输出:28
4、求集合内元素最大值
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };int i= list.Max(); //计算集合内所有元素中最大值 输出:9
5、求集合内元素最小值
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };int i = list.Min(); //计算集合内所有元素中最大值 输出:1
6、集合转数组
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };int[] ints = list.ToArray(); //list集合转为int类型数组
7、集合内元素去重
List<int> list = new List<int>() { 7, 3, 6, 3, 6, 7 };list= list.Distinct().ToList(); //list集合内元素去重 输出:7,3,6
8、复制集合中指定索引长度元素至新集合中
List<int> list = new List<int>() { 1, 3, 6, 2, 8, 7 };list= list.GetRange(0, list.Count-3); //从集合指定索引处,拷贝指定长度数量 存储在新集合中 输出:1,3,6
9、连接两个集合中全部元素生成新集合
List<int> list1 = new List<int> { 1, 2, 3 };List<int> list2 = new List<int> { 4, 5, 6 };IEnumerable<int> combinedList = list1.Concat(list2); //连接两个集合 ,生成IEnumerable类型int[] ints= combinedList.ToArray(); //因IEnumerable类型使用foreach遍历方便,为了使用for循环变量转为数组类型for (int i = 0; i < ints.Length; i++){Console.WriteLine(ints[i]); //输出连接后的集合元素 输出结果:1,2,3,4,5,6}
相关文章:
C# list集合
一、list集合基本使用 1.添加元素 ① 单个元素添加 List<int> list new List<int>();for (int i 0; i < 3; i){list.Add(i);}//输出:0,1,2 ②初始化时添加元素 List<int> list2 new List<int> { 1, 2, 3 };//输出:0,1…...
****三次握手和四次挥手
一、三次握手 1.简要描述TCP三次握手的过程 第一次握手,客户端发送SYN包到服务器; 第二次握手,服务器收到SYN包,回复一个SYNACK包; 第三次握手,客户端收到服务器的SYNACK包后,回复一个ACK包…...
开发语言Java+前端框架Vue+后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势?
开发语言Java前端框架Vue后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势? ADR药物不良反应监测系统具有多个显著的优势,这些优势主要体现在以下几个方面: 一、提高监测效率与准确性: 通过自动化的数据收集…...
问题排查|记录一次基于mymuduo库开发的服务器错误排查(段错误--Segmentation fault (core dumped))
问题记录: 在刚完成mymuduo库之后,写了一个简单的测试服务器, 但是在服务器运行后直接报错: cherryhcss-ecs-4995:~/mymuduo/example$ ./testserver Segmentation fault (core dumped)出现多错误这通常意味着程序试图访问其内存空…...
Mysql常用操作DQL数据库、表操作:
DQL是指MySQL数据库中的数据查询语言(Data Query Language)。它是用来从数据库中检索所需数据的语言。DQL允许用户通过指定查询条件和筛选条件来检索数据库中的数据,并以所需的方式来显示结果。DQL语句可以用于从单个表中查询数据,…...
标题:Go语言中的YAML魔法:轻松配置你的环境
摘要: 本文将介绍如何在Go语言项目中使用YAML文件来管理配置,包括如何读取YAML文件以及如何在代码中解析和使用这些配置。 正文: 在编程世界中,配置管理是每个项目都必须面对的问题。对于Go语言项目来说,YAML文件是一…...
STM32高级控制定时器之输入捕获模式
目录 概述 1 输入捕获模式 1.1 原理介绍 1.2 实现步骤 1.3 发生输入捕获流程 2 使用STM32Cube配置工程 2.1 软件环境 2.2 配置参数 2.3 生成项目文件 3 功能实现 3.1 PWM调制占空比函数 3.2 应用函数库 4 测试 4.1 功能框图 4.2 运行结果 源代码下载地址…...
使用 Vue 3 和 qrcode.js 开发二维码显示组件
二维码在现代应用中广泛使用,例如支付、身份验证、链接分享等。本文将介绍如何使用 Vue 3 和 qrcode.js 库来创建一个灵活的二维码显示组件,并展示如何在应用中使用它。 1. 安装必要的依赖 首先,我们需要安装 Vue 3 和 qrcode.js。如果你还…...
LabVIEW异步编程概述
LabVIEW异步编程是一种在图形化编程环境中处理并行任务的方法。通过异步执行,可以提高程序的响应速度和资源利用效率,使得多个任务可以独立进行而不互相干扰。 原理 LabVIEW异步编程的核心在于使用异步调用节点(Asynchronous Call By Refer…...
【数据库】MySQL表的操作
目录 一.创建表 二.查看表 三.修改表 四.删除表 一.创建表 基本语法: CREATE TABLE table_name(field1 datatype,field2 datatype,field3 datatype) character set 字符集 collate 校验规则 engine 储存引擎field表示列名 datatype表示列的类型 charatcer se…...
【mybatis解决oracle查询in超过1000条数据】
1、因为代码中前人未考虑in 数据可能大于1000,导致现在系统报错,MPP low前人 直接上sql select * from table a <where><if test"list ! null and list.size > 0">and a.name in<foreach collection"list" inde…...
EasyExcel之动态表头导出不生效
今天接到一个优化需求,表格导出后的表头顺序和页面不一致,要优化成一致的。根据传入的字段,动态导出数据,并保证顺序。 我看到导出的实体类都有ExcelProperty注解,同时也在官网查看了这注解的含义和使用。 ExcelPrope…...
appium元素定位工具_uiautomatorviewer.bat
特点: uiautomatorviewer是android-sdk自带的元素定位工具uiautomatorviewer只能用于安卓系统;它是通过截屏分析XML布局文件方式,来提供控件信息的查看服务 uiautomatorviewer.bat 基本使用 路径:这个工具是Android SDK中自带&…...
手机离线翻译哪个好?断网翻译也能超丝滑
有时在异国他乡,面对语言不通的窘境,即便是简单的对话也变得异常困难,真是挑战满满! 然而,能离线翻译的软件让语言障碍不再是问题,不必依赖网络也能轻松进行翻译啦~ 只需下载所需的语言包,选择…...
神器!!Python热重载调试【送源码】
在 Python 开发的路上,调试是我们不可避免的一环。 而今天推荐的开源项目Reloadium ,让你在不重启程序的情况下实现代码的即时更新和调试。 🔄 Reloadium 功能亮点: 1. 热重载魔法: Reloadium 不仅仅能够实现代码的…...
Flutter基础 -- Dart 语言 -- 列表集合枚举
目录 1. 列表 List 1.1 初始 1.2 声明 1.2.1 自动 1.2.2 定长 1.2.3 生成数据 1.3 属性 1.4 方法 1.4.1 添加 1.4.2 查询 1.4.3 删除 1.4.4 Range 1.4.5 洗牌 1.4.6 排序 1.4.7 复制子列表 1.4.8 操作符 2. 集合 Map 2.1 初始 2.2 声明 2.2.1 松散 2.2.2 …...
怎么花草识别?方法有三种!
怎么花草识别?在这个五彩斑斓的世界里,花草是我们生活中不可或缺的一部分。它们点缀着我们的环境,为我们带来无尽的美丽与惊喜。然而,面对众多的花草种类,你是否曾感到困惑和迷茫,不知道如何识别它们&#…...
【qt】自定义对话框
自定义对话框 一.自定义对话框的使用1.应用场景2.项目效果3.界面拖放4.模型和视图的设置5.action功能实现 二.自定义对话框的创建1.设置对话框界面2.创建对话框 三.对话框的功能与样式实现1.对话框数据的交换2.对话框的显示3.设置对话框的特性4.完成按钮的功能 四.编辑表头的对…...
汽车IVI中控开发入门及进阶(二十二):video decoder视频解码芯片
前言: 视频解码器在许多汽车、专业和消费视频应用中仍有需求。Analog Devices是模拟视频产品领域的行业领导者,提供一系列视频解码器,可将标准(SD,standard definition)和高清(HD,High definition)分辨率的模拟视频高质量转换为MIPI或TTL格式的数字视频数据。典型的应…...
混沌测试介绍
混沌测试介绍 1. 混沌测试简介 混沌测试(Chaos Engineering)是一种测试方法,通过在生产环境中故意引入故障,测试系统在异常情况下的表现,以提高系统的弹性和鲁棒性。其目标是确保系统能够在面对不可预见的事件或故障…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
