4-1-1.C# 数据容器 - List(List 的定义、List 元素的基本操作、List 元素的遍历、List 的常用方法)

List 概述

  1. List<T> 存储的元素是有序的

  2. List<T> 存储的元素是可重复的

  3. List<T> 支持泛型,可以指定存储的元素的类型

  4. List<T> 支持索引,可以通过索引获取或修改元素

  5. List<T> 支持动态大小(有扩容机制),不同于数组的固定大小

  6. List<T> 内部使用数组来存储元素,当数组填满时,会自动分配一个新的、更大的数组,并将现有元素复制到新数组中

  7. List<T> 不是线程安全的,在多线程环境中需要谨慎使用


一、List 的定义

  1. 定义 List
List<int> nums = new List<int>();
List<string> names = new List<string>();
  1. 定义 List 并填充一些元素
List<int> nums = new List<int> { 1, 2, 3 };
List<string> names = new List<string> { "tom", "jack" };

二、List 元素的基本操作

1、List 元素的添加
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);
2、List 元素的访问
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);Console.WriteLine(nums[0]);
Console.WriteLine(nums[1]);
Console.WriteLine(nums[2]);
# 输出结果1
2
3
3、List 元素的修改
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);Console.WriteLine(nums[0]);
Console.WriteLine(nums[1]);
Console.WriteLine(nums[2]);nums[0] = 10;
nums[1] = 20;
nums[2] = 30;Console.WriteLine(nums[0]);
Console.WriteLine(nums[1]);
Console.WriteLine(nums[2]);
# 输出结果1
2
3
10
20
30

三、List 元素的遍历

1、 使用 for 循环遍历
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);for (int i = 0; i < nums.Count; i++)
{Console.WriteLine(nums[i]);
}
# 输出结果1
2
3
2、使用 foreach 循环遍历
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);foreach (int num in nums)
{Console.WriteLine(num);
}
# 输出结果1
2
3
3、使用 ForEach 方法遍历
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);nums.ForEach(num => Console.WriteLine(num));
# 输出结果1
2
3

四、List 的常用方法

1、List 元素的删除
  1. List 指定元素删除
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);Console.WriteLine("删除元素之前");foreach (int num in nums)
{Console.WriteLine(num);
}nums.Remove(2);Console.WriteLine("删除元素之后");foreach (int num in nums)
{Console.WriteLine(num);
}
# 输出结果删除元素之前
1
2
3
删除元素之后
1
3
  1. List 指定元素删除,会删除 List 中第一个匹配到的指定元素
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);
nums.Add(2);Console.WriteLine("删除元素之前");foreach (int num in nums)
{Console.WriteLine(num);
}nums.Remove(2);Console.WriteLine("删除元素之后");foreach (int num in nums)
{Console.WriteLine(num);
}
删除元素之前
1
2
3
2
删除元素之后
1
3
2
  1. List 指定索引删除
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);Console.WriteLine("删除元素之前");foreach (int num in nums)
{Console.WriteLine(num);
}nums.RemoveAt(1);Console.WriteLine("删除元素之后");foreach (int num in nums)
{Console.WriteLine(num);
}
# 输出结果删除元素之前
1
2
3
删除元素之后
1
3
2、List 大小的获取
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);Console.WriteLine(nums.Count);
# 输出结果3
3、List 元素的查找
  1. List 元素的查找,找到则返回元素的索引,找不到则返回 -1
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);Console.WriteLine(nums.IndexOf(1));
Console.WriteLine(nums.IndexOf(10));
# 输出结果0
-1
  1. List 元素的查找,找到并返回的元素的索引,是第一个匹配到的元素的索引
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);
nums.Add(1);Console.WriteLine(nums.IndexOf(1));
# 输出结果0
4、List 元素的清空
List<int> nums = new List<int>();nums.Add(1);
nums.Add(2);
nums.Add(3);Console.WriteLine("清空 List 之前");foreach (int num in nums)
{Console.WriteLine(num);
}nums.Clear();Console.WriteLine("清空 List 之后");foreach (int num in nums)
{Console.WriteLine(num);
}
# 输出结果清空 List 之前
1
2
3
清空 List 之后

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8862.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【青牛科技】GC5931:工业风扇驱动芯片的卓越替代者

在工业领域&#xff0c;工业风扇的稳定高效运行对于维持良好的生产环境至关重要。而驱动芯片作为工业风扇控制系统的核心元件&#xff0c;其性能直接影响风扇的工作状态。芯麦 GC5931 作为一款新型驱动芯片&#xff0c;在替代 A5931/Allegro 应用于工业风扇中展现出了非凡的优势…

CST案例分析:TLM算法仿真5G毫米波手机天线和整机

5G时代&#xff0c;产品复杂&#xff0c;更新换代快&#xff0c;如何快速仿真不同的设计版本是影响研发效率的关键问题。本期我们用达索系统SIMULIA自己的手机模型来演示5G毫米波的仿真。 &#xff08;图片仅为概念演示&#xff0c;未经达索系统授权不得使用&#xff09; 完整的…

小猿口算炸鱼脚本

目录 写在前面&#xff1a; 一、关于小猿口算&#xff1a; 二、代码逻辑 1.数字识别 2.答题部分 三、代码分享&#xff1a; 补充&#xff1a;软件包下载 写在前面&#xff1a; 最近小猿口算已经被不少大学生攻占&#xff0c;小学生直呼有挂。原本是以为大学生都打着本…

【debug】QT 相关问题error汇总

总结一下碰到过的所有问题error以及解决方案 qt的UI更新之后构建后发现没有变化 取消项目中的Shadow build的勾选&#xff0c;作用是取消影子构建&#xff0c;此后构建目录与源码处于同一目录&#xff0c;每次编译更新程序使用的UI文件error: ‘class QWidget’ has no member…

滑动窗口最大值

239. 滑动窗口最大值 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 …

GEE 案例——利用哨兵-2 图像时间序列和谷歌地球引擎云计算自动绘制和监测香港海洋水质参数

目录 简介 结论 代码 结果 APP链接 引用 简介 对沿海水质的持续监测对于水资源管理和海洋生态系统的可持续性至关重要。 遥感数据&#xff08;如哨兵-2 卫星图像&#xff09;可提供用于时间序列分析的高分辨率观测数据&#xff0c;而基于云的谷歌地球引擎&#xff08;GE…

Redis4:Redis的Java客户端

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

基于Java Web的传智播客crm企业管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

【Eclipse系列】eclipse安装与常规配置(含插件)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、下载与安装 二、常规设置 1.1.设置工作空间(workspace) 1.2.设置字体和字体大小 ​编辑 1.3.设置编码 1.4.去除验证(validation) 1.5.去除单词验证(spelli…

抗辐照MCU芯片工艺解析:如何保障芯片的可靠性

行星探索、轨道飞行器任务和空间研究在内的太空项目需要创新的航天器系统技术提供通信与处理功能。随着商业航天的发展&#xff0c;对于航天电子系统需要考虑高可靠与高性能的同时&#xff0c;还需要考虑降低开发成本和缩短上市时间。 以MCU芯片AS32A401为例&#xff0c;该芯片…

qt QKeySequence详解

1、概述 QKeySequence 是 Qt 框架中的一个类&#xff0c;用于表示和处理键盘快捷键序列。它提供了一种方便的方式来解析、存储和比较键盘快捷键&#xff0c;这些快捷键通常用于触发应用程序中的特定操作或命令。QKeySequence 支持多种格式的快捷键表示&#xff0c;包括单个按键…

【RMA】基于知识注入和模糊学习的多模态歧义分析

abstract 多模态情感分析&#xff08;MSA&#xff09;利用互补的多模态特征来预测情感极性&#xff0c;主要涉及语言、视觉和音频三种模态。现有的多模态融合方法主要考虑不同模态的互补性&#xff0c;而忽略了模态之间的冲突所导致的歧义&#xff08;即文本模态预测积极情绪&…

移动取证和 Android 安全

当今的数字时代已经产生了许多技术进步&#xff0c;无论是智能手机还是虚拟现实、人工智能和物联网 (IoT) 等下一代基础技术。 智能手机已不再只是奢侈品&#xff0c;而是我们生存所必需的东西。根据各种统计数据&#xff0c;如今全球有超过 50% 的人使用手机。 由于数据存储…

【Linux】简易版shell

文章目录 shell的基本框架PrintCommandLineGetCommandLineParseCommandLineExecuteCommandInitEnvCheckAndExecBuildCommand代码总览运行效果总结 shell的基本框架 要写一个命令行我们首先要写出基本框架。 打印命令行获取用户输入的命令分析命令执行命令 基本框架的代码&am…

Java 枚举

目录 枚举是什么 常用方法 构造方法 枚举的优缺点 枚举和反射 实现单例模式 枚举是什么 枚举&#xff08;enum&#xff09;&#xff1a;是一种特殊的类&#xff0c;用于定义一组常量&#xff0c;将其组织起来。枚举使得代码更具有可读性和可维护性&#xff0c;特别是在处…

【梯度下降法优化】随机梯度下降、牛顿法、动量法、Nesterov、AdaGrad、RMSprop、Adam

本文理论参考王木头的视频&#xff1a; “随机梯度下降、牛顿法、动量法、Nesterov、AdaGrad、RMSprop、Adam”&#xff0c;打包理解对梯度下降法的优化_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1r64y1s7fU/?spm_id_from333.999.0.0&vd_sourceecbdfcacb078d0…

五个高质量伤感视频素材资源站,帮你快速找到完美创作素材

在制作短视频、MV或者广告时&#xff0c;伤感主题的视频素材往往能触动观众的情感&#xff0c;让作品更具共鸣。无论是表达分手、离别&#xff0c;还是展现孤独与失落&#xff0c;合适的伤感素材对情感类创作至关重要。为帮助创作者找到优质的视频素材&#xff0c;以下推荐5个高…

天正建筑T20V8

链接: https://pan.baidu.com/s/1k-PcXJxHWPh3-6yAIfcaPg提取码: dvyn

JavaScript 实现文本转语音功能

全篇大概2000 字&#xff08;含代码&#xff09;&#xff0c;建议阅读时间10分钟。 引言 我将向大家展示如何使用 JavaScript 和 Web Speech API 快速实现一个“文本转语音”的 Web 应用。通过这个教程&#xff0c;你将了解如何让浏览器将输入的文本朗读出来。 预览效果 一、…

DNS域名详细解析详解

文章目录 DNS域名详细解析详解一、引言二、DNS域名解析过程1、DNS解析概述1.1、DNS解析的基本步骤 2、代码示例 三、DNS查询类型1、递归查询2、迭代查询 四、总结 DNS域名详细解析详解 一、引言 在互联网的世界里&#xff0c;域名和IP地址是两个不可或缺的概念。IP地址是计算…