简述 C# 二维数据集合 List 的创建、遍历、修改、输出
简述 C# 二维数据集合 List 的创建、遍历、修改、输出
- 1、为什么要使用列表 List
- 2、引入命名空间
- 3、声明一维列表 List
- 4、声明创建一个二维列表 List,数据类型 int
- 5、 简单访问元素
- 6、遍历二维列表,控制台输出
- 7、遍历二维列表,修改数据,控制台输出,采用 Join 输出行数据
- 8、删除列表行,索引默认从零开始
- 9、删除集合中一定范围内的元素,索引默认从零开始
- 10、在列表索引前插入元素
- 11、List的方法和属性、方法或属性作用
1、为什么要使用列表 List
-
当我们有很多类型一样的数据时,可以使用数组来进行存储并管理,但是数组的缺点:C# 数组的大小必须提前给定的、是固定的,不像 VB 数组可以自由按量变化。 如果我们有许多数据类型一样,但数量不定的数据,当获取的数据数量超过数组定义,数组将发生数据溢出错误,这时候可以使用集合类来进行管理——例如列表 List。我们可以使用列表 List 很方便的添加数据,删除数据以及其他的一些数据操作,便于方便数据操作,List 操作比数组更加灵活。List 类是 ArrayList 类的泛型等效类,该类使用大小可按需动态增加的数组实现 IList 泛型接口。
-
泛型的好处:它为使用 C# 语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。
-
性能注意事项:在决定使用 IList 还是使用 ArrayList 类(两者具有类似的功能)时,记住 IList 类在大多数情况下执行得更好并且是类型安全的。如果对 IList 类的类型 T 使用引用类型,则两个类的行为是完全相同的。但是,如果对类型 T 使用值类型,则需要考虑实现和装箱问题。
2、引入命名空间
using System; using System.Collections.Generic;
3、声明一维列表 List
List<T> mList = new List<T>();
T 为列表中元素类型,即数据类型。
4、声明创建一个二维列表 List,数据类型 int
//声明新的二维列表 List:twoDimensionalListList<List<int>> twoDimensionalList = new List<List<int>>();// 初始化二维列表 List ,添加 3 行 4 列twoDimensionalList.Add(new List<int> { 1, 2, 3, 4 });//添加一维 List 元素twoDimensionalList.Add(new List<int> { 5, 6, 7, 8 });twoDimensionalList.Add(new List<int> { 9, 10, 11, 12 });
5、 简单访问元素
int element = twoDimensionalList[0][1]; // 获取第一行第二个元素,值为2Console.WriteLine(element);Console.WriteLine();
A 输出:2
6、遍历二维列表,控制台输出
// 获取二维列表行数int rowCount = twoDimensionalList.Count;// 获取二维列表列数int columnCount = twoDimensionalList.Count == 0 ? 0 : twoDimensionalList[0].Count;//遍历二维列表,控制台输出foreach (List<int> row in twoDimensionalList){foreach (int item in row){Console.Write(item + " ");//控制台调试显示数据}Console.WriteLine();}Console.WriteLine();
B 输出:
1 2 3 4
5 6 7 8
9 10 11 12
7、遍历二维列表,修改数据,控制台输出,采用 Join 输出行数据
for (int i = 0; i < rowCount; i++){for (int j = 0; j < columnCount; j++){twoDimensionalList[i][j] += 1;//修改数据,二维数据每个数加 1}}//遍历二维列表,控制台输出,采用 Join 输出行数据foreach (var row in twoDimensionalList) { Console.WriteLine(string.Join(" ", row)); }
C 输出:
2 3 4 5 //索引为 0
6 7 8 9 //索引为 1
10 11 12 13 //索引为 2
8、删除列表行,索引默认从零开始
数据继 C 输出:
twoDimensionalList.RemoveAt(2);//删除索引 2 的行数据
输出:
2 3 4 5
6 7 8 9
9、删除集合中一定范围内的元素,索引默认从零开始
数据继 C 输出:
twoDimensionalList.RemoveRange(0, 2);//从索引 0 开始,删除 2 行数据
输出:
10 11 12 13
10、在列表索引前插入元素
数据继 C 输出:
twoDimensionalList.Insert(1, new List<int> { 15, 16, 17, 18 });
输出:
2 3 4 5
15 16 17 18
6 7 8 9
10 11 12 13
11、List的方法和属性、方法或属性作用
List 的方法和属性在二维数组中同样可以操作,先从一维 List 数据处理开始学习吧 😁😁😁
- Capacity 用于获取或设置 List 可容纳元素的数量。当数量超过容量时,这个值会自动增长。可以设置这个值以减少容量,也可以调用trin()方法来减少容量以适合实际的元素数目。
- Count 属性,用于获取数组中当前元素数量
- Item( ) 通过指定索引获取或设置元素。对于List类来说,它是一个索引器。
- Add( ) 在List中添加一个对象的公有方法
- AddRange( ) 公有方法,在List尾部添加实现了ICollection接口的多个元素
- BinarySearch( ) 重载的公有方法,用于在排序的List内使用二分查找来定位指定元素.
- Clear( ) 在List内移除所有元素
- Contains( ) 测试一个元素是否在List内
- CopyTo( ) 重载的公有方法,把一个List拷贝到一维数组内
- Exists( ) 测试一个元素是否在List内
- Find( ) 查找并返回List内的出现的第一个匹配元素
- FindAll( ) 查找并返回List内的所有匹配元素
- GetEnumerator( ) 重载的公有方法,返回一个用于迭代List的枚举器
- Getrange( ) 拷贝指定范围的元素到新的List内
- IndexOf( ) 重载的公有方法,查找并返回每一个匹配元素的索引
- Insert( ) 在List内插入一个元素
- InsertRange( ) 在List内插入一组元素
- LastIndexOf( ) 重载的公有方法,,查找并返回最后一个匹配元素的索引
- Remove( ) 移除与指定元素匹配的第一个元素
- RemoveAt( ) 移除指定索引的元素
- RemoveRange( ) 移除指定范围的元素
- Reverse( ) 反转List内元素的顺序
- Sort( ) 对List内的元素进行排序
- ToArray( ) 把List内的元素拷贝到一个新的数组内
- trimToSize( ) 将容量设置为List中元素的实际数目
相关文章:
简述 C# 二维数据集合 List 的创建、遍历、修改、输出
简述 C# 二维数据集合 List 的创建、遍历、修改、输出 1、为什么要使用列表 List2、引入命名空间3、声明一维列表 List4、声明创建一个二维列表 List,数据类型 int5、 简单访问元素6、遍历二维列表,控制台输出7、遍历二维列表,修改数据&#…...
ps2024 一键安装教程 永久使用!
下载后,直接解压打开exe文件就能安装了 下载: https://pan.baidu.com/s/1uDSug00prwRw5igF0N-Xhw?pwd8888 【软件名称】:ps2024 【软件大小】:4.7g 【软件版本】:25.12.0.806 【软件简介】:Photoshop,简称“PS”,是由美国Adobe公司推出…...
ScrollView 真机微信小程序无法隐藏滚动条
问题描述 根据官方文档,使用:show-scrollbar"false",隐藏滚动条无效 解决方法 添加一段样式在 scroll-view 上或者父级节点上下 ::-webkit-scrollbar {width: 0;height: 0;color: transparent;display: none;} eg. .inforDetails_app {p…...
【日志】编辑器开发——修复根据Excel表格数据生成Json文件和配置表代码报错
2024.10.15 又是蕉绿且摆烂的一天,不仅需要克制网瘾,还要努力学习,不然真的会被抛弃啊。但是我还是不想卷,给我的时间大概还有半年,突然好奇半年时间到底能学点什么或者做点什么。 【力扣刷题】 暂无 【数据结构】 …...
C#线性查找算法
前言 线性查找算法是一种简单的查找算法,用于在一个数组或列表中查找一个特定的元素。它从数组的第一个元素开始,逐个检查每个元素,直到找到所需的元素或搜索完整个数组。线性查找的时间复杂度为O(n),其中n是数组中的元素数量。 …...
GPT+Python)近红外光谱数据分析与定性/定量建模技巧
2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在…...
Spark动态资源释放机制 详解
Apache Spark 是一个分布式数据处理框架,其动态资源分配(或称为动态资源释放)机制,是为了更高效地利用集群资源,尤其是在执行具有不同工作负载的作业时。Spark 的动态资源释放机制允许它根据作业的需求自动分配和释放集…...
基于径向基神经网络(RBF)的构网型VSG自适应惯量控制MATLAB仿真模型
微❤关注“电气仔推送”获得资料(专享优惠) 模型简介 逆变器虚拟同步发电机控制和核心控制参数就是虚拟惯量与虚拟阻尼,目前的文献中已有众多论文对VSG的虚拟参数展开了研究,但是百分之90都是采用构造函数的方法,使用…...
简单汇编教程9 字符串与字符串指令
目录 字符串的指令 movs 字符串传送 lods, stos使用 cmpsb的使用 SCASB的使用 字符串你很熟悉了,我们定义了无数次了! %macro ANNOUNCE_STRING 2%1 db %2%1_LEN equ $ - %1 %endmacro 当然,我们现在来学习一个比较新的定义方式…...
Taro构建的H5页面路由切换返回上一页存在白屏页面过渡
目录 项目背景:Taro与Hybrid开发问题描述:白屏现象可能的原因包括: 解决方案解决后的效果图 其他优化方案可参考: 项目背景:Taro与Hybrid开发 项目使用Taro框架同时开发微信小程序和H5页面,其中H5页面被嵌…...
【学习笔记】网络设备(华为交换机)基础知识 9 —— 堆叠配置
提示:学习华为交换机堆叠配置,含堆叠的概念、功能、角色、ID和优先级;堆叠的建立过程以及注意事项;包含堆叠的配置命令,以及堆叠的配置案例 一、前期准备 1.已经可以正常访问交换机的命令行接口 Console口本地访问教…...
jeston编译配置cuda加速版opencv
1.源码下载连接 opencv:Releases - OpenCV opencv-contrib: https://github.com/opencv/opencv_contrib 建议不要下最新版本 一般我会下4.5.4 // 4.5.6 // 4.6.0 opencv和opencv-contrib版本要对齐 将下好的opencv和opencv-contrib解压 将opencv-c…...
ApacheShiro反序列化 550 721漏洞
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理个漏洞被称为 Shiro550 是因为在Apache Shiro的GitHub问题跟踪器中,该漏洞最初被标记为第550个问题,721漏洞名称也是由此而来 Shiro-550 CVE-2016-4437 Shiro反序列化Docker复现 …...
Github + 自定义域名搭建个人静态站点
Github 自定义域名搭建个人静态站点 使用 Github 部署一个自己的免费站点给你的站点添加上自定义域名 本文基于腾讯云基于二级域名, 作用于 Github 实现自定义域名站点 使用 Github 部署一个自己的免费站点 首先你得有一个 Github 账号, 没有就去注册一个,网上有教程,本文跳…...
使用OpenCV进行视频边缘检测:案例Python版江南style
1. 引言 本文将演示如何使用OpenCV库对视频中的每一帧进行边缘检测,并将结果保存为新的视频文件。边缘检测是一种图像处理技术,它可以帮助我们识别出图像中不同区域之间的边界。在计算机视觉领域,这项技术有着广泛的应用,比如物体…...
DataWhale10月动手实践——Bot应用开发task04学习笔记
一、图像流 1. 什么是图像流? 图像流是一种直观的图像处理流程工具,用户可以灵活组合各类图像处理模块。该系统将不同的图像处理工具模块化,并通过可视化界面,将这些模块以拖拽方式组合,构建完整的处理流程。用户可以…...
关于 IntelliJ IDEA 2024 安装使用
补丁文件...
React是如何工作的?
从编写组件到最后屏幕生成界面,如上图所示,我们现在需要知道的就是后面几步是如何运行的。 概述 这张图解释了 React 渲染过程的几个阶段: 渲染触发:通过更新某处的状态来触发渲染。渲染阶段:React 调用组件函数&…...
llama.cpp 去掉打印,只显示推理结果
llama.cpp 去掉打印,只显示推理结果 1 llama.cpp/common/log.h #define LOG_INF(...) LOG_TMPL(GGML_LOG_LEVEL_INFO, 0, __VA_ARGS__) #define LOG_WRN(...) LOG_TMPL(GGML_LOG_LEVEL_WARN, 0, __VA_ARGS__) #define LOG_ERR(…...
Word、PDF转换为图片Java
Word、PDF转换为图片Java 需求要在小程序端展示文档内容,所以将文档每页转换为图片后显示 参考和其他等方案: https://blog.csdn.net/strggle_bin/article/details/140599514 https://www.modb.pro/db/566986 https://blog.csdn.net/spring_is_comin…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
