简述 C# 二维数据集合 List 的创建、遍历、修改、输出

news/2024/10/22 5:11:57/

简述 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中元素的实际数目

http://www.ppmy.cn/news/1540985.html

相关文章

Kubernetes集群搭建容器云需要几台服务器?

Kubernetes集群搭建容器云需要几台服务器&#xff1f;至少需要4台服务器。搭建容器云所需的服务器数量以及具体的搭建步骤&#xff0c;会根据所选用的技术栈、业务规模、架构设计以及安全需求等因素而有所不同。以下是一个基于Kubernetes集群的容器云搭建的概述&#xff1a; 一…

css的思考

CSS思考[vue react tailwindcss] 传统css 全局作用域: 一旦生效&#xff0c;应用于全局&#xff0c;造成各种各样的冲突&#xff0c;为了避免冲突&#xff0c;会写复杂的id选择器和类选择器依赖问题&#xff1a;引入多个css样式文件&#xff0c;引入的css文件会对后面的css文…

hadoop_hdfs详解

HDFS秒懂 HDFS定义HDFS优缺点优点缺点 HDFS组成架构NameNodeDataNodeSecondary NameNodeClient NameNode工作机制元数据的存储启动流程工作流程 Secondary NameNode工作机制checkpoint工作流程 DataNode工作机制工作流程数据完整性 文件块大小块太小的缺点块太大的缺点 文件写入…

《汇编语言》笔记一 寄存器

通用寄存器 8086CPU的所有的寄存器都是16位的&#xff0c;可以存放两个字节。AX、BX、CX、DX这4个寄存器为通用寄存器。 一个16位寄存器可以存储一个16位的数据。 8086CPU的上一代CPU中的寄存器都是8位&#xff0c;为了保证兼容&#xff0c;使原来基于上代CPU编写的程序稍加修…

小程序底部导航按钮实现

商城小程序需要四个底部导航按钮&#xff0c;遂记录一下实现过程 最终实现效果如下所示 新建一个小程序项目&#xff0c;我是创建了JS模板&#xff0c;项目创建完成后需要新建五个文件夹&#xff0c;其中四个&#xff08;page子文件夹&#xff09;用于存放pages文件&#xff0…

外包干了3周,技术退步太明显了。。。。。

先说一下自己的情况&#xff0c;大专生&#xff0c;21年通过校招进入武汉某软件公司&#xff0c;干了差不多3个星期的功能测试&#xff0c;那年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我才在一个外包企业干了3周的功…

软考(网工)——局域网和城域网

文章目录 &#x1f550;局域网基础1️⃣局域网和城域网体系架构 IEEE&#xff08;负责链路层&#xff09;2️⃣局域网拓扑结构 &#x1f551;CSMA/CD1️⃣CSMA/CD2️⃣CSMA/CD三种监听算法3️⃣冲突检测原理 &#x1f552;二进制指数退避算法1️⃣ 二进制指数退避算法 &#x1…

【力扣 | SQL题 | 每日4题】力扣1596,1587,2228,2066

1. 力扣1596&#xff1a;每位顾客最经常订购的商品 1.1 题目&#xff1a; 表&#xff1a;Customers ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | name | varchar | ------------------------ c…