C# List<T>.IndexOf()方法的使用
C#中的List<T>.IndexOf()方法用于查找指定元素在列表中的索引位置。它返回第一个匹配项的索引,如果未找到匹配项,则返回-1。
语法:有三种参数可选
int List<T>.IndexOf(T item);
int List<T>.IndexOf(T item, int start_index);
int List<T>.IndexOf(T item, int start_index, int count);
第一个参数item是要搜索的元素
第二个参数start_index是搜索的起始索引位置。
第三个参数count是从“start_index”开始搜索的元素总数。
下面举例说明使用情况:
1、通过1个参数搜索:
// 定义一个包含整数的列表
List<int> numbers = new List<int> { 10, 20, 30, 20, 50 ,15};// 使用IndexOf方法查找元素的索引位置
int index1 = numbers.IndexOf(20);
int index2 = numbers.IndexOf(60);// 输出结果
Console.WriteLine("元素20的索引位置是:" + index1);
Console.WriteLine("元素60的索引位置是:" + index2);
在上面的示例中,我们先定义一个包含整数的列表numbers。然后,我们就用IndexOf()方法查找元素20,60在列表中的索引位置,并将结果存储在变量index中。最后,我们将结果打印出来。
输出结果将是:
元素20的索引位置是:1
元素60的索引位置是:-1
2、通过2个参数搜索:
// 定义一个包含整数的列表
List<int> numbers = new List<int> { 10, 20, 30, 20, 50 ,15};// 使用IndexOf方法从某个索引值开始查找元素的索引位置
int index1 = numbers.IndexOf(20,1);
int index2 = numbers.IndexOf(20,2);
int index3 = numbers.IndexOf(20,4);// 输出结果
Console.WriteLine("元素20的索引位置是:" + index1);
Console.WriteLine("元素20的索引位置是:" + index2);
Console.WriteLine("元素20的索引位置是:" + index3);
输出结果是:
元素20的索引位置是:1
元素20的索引位置是:3
元素20的索引位置是:-1
3、通过3个参数搜索:
// 定义一个包含整数的列表
List<int> numbers = new List<int> { 10, 20, 30, 20, 50 ,15};// 使用IndexOf方法从某个索引值开始查找n个位置元素的索引位置
int index1 = numbers.IndexOf(20,1,3);
int index2 = numbers.IndexOf(20,2,1);// 输出结果
Console.WriteLine("元素20的索引位置是:" + index1);
Console.WriteLine("元素20的索引位置是:" + index2);
输出结果是:
元素20的索引位置是:1
元素20的索引位置是:-1
除了基本的使用方法,还有其它几种使用方法:
1、自定义比较器:IndexOf()方法还可以接受一个IEqualityComparer<T>类型的参数,用于自定义比较器。这样可以在搜索元素时使用自定义的比较逻辑。例如:
List<string> fruits = new List<string> { "apple", "banana", "orange", "Apple" };
int index = fruits.IndexOf("apple", StringComparer.OrdinalIgnoreCase);
Console.WriteLine("元素apple的索引位置是:" + index);
输出结果是:
元素apple的索引位置是:0
在上面的示例中,使用了StringComparer.OrdinalIgnoreCase作为比较器,即忽略大小写进行搜索。
2、LastIndexOf()方法:假如搜索最后一个匹配的索引,那么就可以使用该方法。事实它是直接从列表中最后一个往回搜索匹配第一个匹配索引。
List<int> numbers = new List<int> { 10, 20, 30, 40, 20, 50 };
int index = numbers.LastIndexOf(20);
Console.WriteLine("最后一个元素20的索引位置是:" + index);
输出结果是:
最后一个元素20的索引位置是:4
相关文章:
C# List<T>.IndexOf()方法的使用
C#中的List<T>.IndexOf()方法用于查找指定元素在列表中的索引位置。它返回第一个匹配项的索引,如果未找到匹配项,则返回-1。 语法:有三种参数可选 int List<T>.IndexOf(T item); int List<T>.IndexOf(T item, int star…...
深入理解JVM虚拟机第十八篇:JVM种局部变量表结构的认识
大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JVM 本文章简介:话不多说,让我们讲清楚虚拟机栈存储结构和运行原理 文章目…...
zabbix监控安装-linux
zabbix6.4中文文档1. 简介 (zabbix.com) Zabbix 是一个企业级的开源分布式监控解决方案。 1.zabbix结构体系 Server: server 是存储所有配置、统计和操作数据的中央存储库。 Proxy: zabbix proxy可以代替 Zabbix server 收集性能和可用性数据。p…...
7+差异分析+WGCNA+PPI网络,学会了不吃亏
今天给同学们分享一篇生信文章“Integrated PPI- and WGCNA-Retrieval of Hub Gene Signatures Shared Between Barretts Esophagus and Esophageal Adenocarcinoma”,这篇文章发表在Front Pharmacol期刊上,影响因子为5.6。 结果解读: 选定研…...
接口自动化测试
下面我们来看看,针对在本章优化重构后的接口测试框架来说,有哪些优点呢。 我们首先来看下目录, 1.Case文件夹用来存放我们的测试用例相关的, 2.Data用来存储我们的测试数据,Excel管理测试用例,yaml文件管理…...
SPASS-描述性分析
将身高移入变量 结果展示: 表中分析变量“身高”的个案数、所有个案中的极大值、极小值、均值、标准差及偏度和峰度...
kafka-go操作kafka
package mainimport ("context""fmt""os""os/signal""syscall""time""github.com/segmentio/kafka-go" )var (topic "user_click"reader *kafka.Reader )// 生产消息 func writeKafka(ctx …...
如何判断被DDoS攻击
当网络和设备正常的情况下,服务器突然出现连接断开、访问卡顿、用户掉线等情况;服务器CPU或内存占用率出现明显增长;网络出入流量出现明显增长;网站或应用程序突然出现大量的未知访问;登录服务器失败或者登录过慢等等。以上是最为常见的服务器被 DDoS攻击后出现的几…...
web —— html
Web —— css基础 1. HTML2. 基本HTML结构3. HTML常用标签3.1 文本相关标签3.2 HTML图像标签3.3 HTML超链接标签3.4 HTML表,单3.4.1 HTML表格3.4.2 HTML表单,输入框(多选框,单选框)下拉框 3.5 HTML分区标签3.5.1 div标…...
【C/PTA】数组练习(编程)
本文结合PTA专项练习带领读者掌握数组,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。 文章目录 7-1 计算最大值出现的次数7-2 求一批整数中出现最多的个位数字7-3 装箱问题7-4 数组-值钱的微信号7-5 数组-吹泡泡7-6 数组-数学鬼才 7…...
力扣:155. 最小栈(Python3)
题目: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部…...
uniapp实现在线PDF文件预览
下载pdf文件放在static文件夹下 bug:hbuildX创建的项目pdf文件夹可以放在根目录下面,但是cli创建的项目无法预览,只能放在static下面 按钮跳转预览页面 <button click"toPdf">pdf</button>methods: {toPdf() {uni.…...
Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(一)
下一篇:Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(二)-CSDN博客 介绍: Windows操作系统中自带了一款记事本应用程序,通常用于记录文字信息,具有简单文本编辑功能。Windows的记事本可以新…...
【系统架构设计】架构核心知识: 3.3 DSSA和ABSD
目录 一 特定领域软件架构DSSA 1 DSSA 2 DSSA的基本活动和产物 3 参与DSSA的人员 4 建立过程...
Git的安装和常用命令Git与SVN的区别Gitee远程仓库团队开发代码共享演示
目录 一、Git入门 1.1 Git简介 1.2 Git与SVN的区别 1.2.1 详解 1.2.2 图解 1.3 Git相较于SVN的优势与劣势 1.3.1 Git的优势与劣势 1.3.2 SVN的优势与劣势 1.4 Git的工作流程 1.4.1 图解 1.4.2 详解 二、Git的安装以及常用命令 2.1 Git官网链接 2.2 安装步骤 2.…...
五、计算机网络
(一)OSI/RM 七层模型 七层模型是计算机网络的基石,整个计算机网络是构建与七层模型之上的。 在数据链路层,数据开始以帧为单位,网卡的 MAC 地址就是数据帧的地址,数据的传输开始有地址了。 局域网是工作…...
使用Grafana与MySQL监控监控网络延迟
文章目录 前言python程序使用Grafana步骤1:安装和配置 Grafana步骤2:配置 Grafana 数据源步骤3:创建 Grafana 仪表盘步骤4:将 Grafana 仪表盘嵌入到博客中 前言 在网络应用中,网络延迟是一个重要的指标,它…...
互联网常见职称
1、管理层 CEO – Chief Executive Officer 首席执行官 VP – Vice President 副总裁 HRD – Humen Resource Director 人力资源总监 OD – Operations Director 运营总监 MD – Marketing Director 市场总监 GM – General Manager 总经理 PM – Production Manager 产品…...
UI设计软件有哪些好用和免费的吗?
在我们分享五个有用的原型工具之前,完成原型,将优化界面,这次是UI设计师的任务,UI设计软件对设计师非常重要,UI设计工具是否使用直接影响最终结果,然后有人会问:UI界面设计使用什么软件…...
Linux开发工具之编译器gcc/g++
文章目录 1.查看版本2.程序的翻译3.gcc指令3.1gcc hello.c -o hello3.2gcc -E hello.c -o hello.i3.3gcc -S hello.c -o hello.s3.4gcc -c hello.c -o hello.o3.5gcc hello.o -o hello 4.动静态库[详讲链接阶段]4.1初步认识4.2动态链接4.3静态链接 1.查看版本 gcc -v. 2.程序…...
电池销售系统|基于java + vue电池销售系统(源码+数据库+文档)
电池销售系统 目录 基于springboot vue电池销售系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue电池销售系统 一、前言 博主介绍:✌…...
Ultralytics YOLOv11多光谱目标检测深度解析:三步实现高效跨通道视觉识别
Ultralytics YOLOv11多光谱目标检测深度解析:三步实现高效跨通道视觉识别 【免费下载链接】ultralytics Ultralytics YOLO 🚀 项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics 在农业遥感监测、夜间安防监控、医疗影像分析等场景中…...
类加载器、双亲委派机制是干啥的?一文详解
目录 一.类加载器 1.作用:加载class文件 举例 2.过程详解 代码示例 3.类加载器的种类 ①启动类(根)加载器(Bootstrap ClassLoader,爷爷) ②扩展类加载器(Extension ClassLoader,爸爸) ③应用程序加载器(Appli…...
如何利用FMA音乐分析数据集解决音乐信息检索难题:提升模型准确率的完整方案
如何利用FMA音乐分析数据集解决音乐信息检索难题:提升模型准确率的完整方案 【免费下载链接】fma FMA: A Dataset For Music Analysis 项目地址: https://gitcode.com/gh_mirrors/fm/fma 音乐信息检索(MIR)研究长期面临高质量标注数据…...
【Docker AI Toolkit 2026终极指南】:5大颠覆性新功能+3个生产环境避坑清单,早用早降本37%
更多请点击: https://intelliparadigm.com 第一章:Docker AI Toolkit 2026终极概览与价值定位 Docker AI Toolkit 2026 是面向生产级 AI 工程化的统一容器化平台,深度融合模型训练、推理服务、可观测性与合规治理能力。它不再仅是“Docker …...
InsForge:为AI智能体设计的语义化后端平台部署与实战指南
1. 项目概述:为AI智能体打造的全栈后端平台如果你正在尝试让AI智能体(比如Claude、GPT-4o,或者Cursor、Windsurf这类AI代码编辑器)去构建一个完整的Web应用,你可能会遇到一个核心瓶颈:如何让AI理解并操作你…...
解密MPC-HC:如何通过DirectShow架构与模块化设计打造高性能媒体播放引擎
解密MPC-HC:如何通过DirectShow架构与模块化设计打造高性能媒体播放引擎 【免费下载链接】mpc-hc MPC-HCs main repository. For support use our Trac: https://trac.mpc-hc.org/ 项目地址: https://gitcode.com/gh_mirrors/mpc/mpc-hc MPC-HC(M…...
Arcade-plus谱面编辑器:从零开始制作专业Arcaea谱面的完整指南
Arcade-plus谱面编辑器:从零开始制作专业Arcaea谱面的完整指南 【免费下载链接】Arcade-plus A better utility used to edit and preview aff files 项目地址: https://gitcode.com/gh_mirrors/ar/Arcade-plus Arcade-plus是一款功能强大的开源谱面编辑工具…...
别再只用线性插值了!游戏开发中平滑动画的5种曲线插值实战(附Unity/C#代码)
游戏动画进阶:5种曲线插值实战指南与Unity实现 在角色跃过悬崖的瞬间,UI菜单展开的流畅过渡,或是摄像机跟随玩家时的丝滑追踪——这些令人愉悦的游戏体验背后,都藏着一个关键数学工具:曲线插值。当新手开发者还在使用V…...
STM32F103C8T6驱动WS2812B全彩灯带:手把手教你用PWM+DMA实现呼吸灯和彩虹渐变(附完整代码)
STM32F103C8T6驱动WS2812B全彩灯带:从硬件连接到动态光效的完整实现指南 在智能家居装饰、创意灯光艺术和电子DIY项目中,WS2812B全彩LED灯带因其丰富的色彩表现和简单的单线控制方式而广受欢迎。本文将深入探讨如何利用STM32F103C8T6微控制器的PWM和DMA功…...
