【转载】 C#中List集合使用First方法查找符合条件的第一个元素
在C#的List集合相关操作中,很多时候需要从List集合中查找出符合条件的第一个元素对象,如果确认在List集合中一定存在符合条件的元素,则可以使用First方法来查找,First方法调用格式为First(查询条件lambda表达式)。如果不能保证List集合中一定存在符合条件的记录,则在未能查找符合条件记录的时候,First方法会抛出System.InvalidOperationException异常,提示序列不包含任何匹配元素。
例如,我们有个List集合List<TestModel>对象list,TestModel类的定义如下:
public class TestModel
{
public int Index { set; get; }
public string Name { set; get; }
}
list对象的具体定义以及内容元素如下,包含2个实体对象。
List<TestModel> list = new List<ConsoleApplication1.TestModel>();
list.Add(new ConsoleApplication1.TestModel() { Index=1,Name="Text1" });
list.Add(new ConsoleApplication1.TestModel() { Index = 2, Name = "Text2" });
(1)从list集合中查找出Index=1的符合条件的第一条记录可以使用下列语句来实现。
var model = list.First(t => t.Index == 1);
上述语句中t=>t.Index==1是Lambda表达式的写法。查找出来的结果返回一个对象TestModel() { Index=1,Name="Text1" }。
(2)如果从list集合中查找Index=12的记录,则使用下列语句会直接抛出System.InvalidOperationException异常,提示序列不包含任何匹配元素。
var model = list.First(t => t.Index == 12);
所以如果不能保证List集合中一定存在符合条件的记录,则建议使用C#的List集合的FirstOrDefault方法来代替,此方法在查找不到符合条件的记录的时候不会抛出异常,而是直接返回默认值,例如上述语句用FirstOrDefault方法改写如下:
var model = list.FirstOrDefault(t => t.Index == 12);
我们得到的结果为model=null,程序正常执行,不会抛出System.InvalidOperationException异常。
备注:原文转载自博主个人站IT技术小趣屋,原文链接C#中List集合使用First方法查找符合条件的第一个元素_IT技术小趣屋。
博主个人技术交流群:960640092,博主微信公众号如下,可免费阅读云服务器运维知识。
C#编写的扫雷游戏源码(完整解决方案源码,可以直接编译运行):https://pan.baidu.com/s/1T4zVndyypzY9i9HsLiVtGg。提取码请关注博主公众号后,发送消息:扫雷源码。

【转载】 C#中List集合使用First方法查找符合条件的第一个元素的更多相关文章
- 【转载】C#中List集合使用Max()方法查找到最大值
在C#的List集合操作中,有时候需要查找到List集合中的最大值,此时可以使用List集合的扩展方法Max方法,Max方法有2种形式,一种是不带任何参数的形式,适用于一些值类型变量的List集合,另 ...
- 【转载】C#中List集合使用LastOrDefault方法查找出最后一个符合条件的元素
在C#的List集合中,FirstOrDefault方法一般用来查找List集合中第一个符合条件的对象,如果未查到则返回相应默认值.其实如果要查找最后一个符合条件的List集合元素对象,可以使用Las ...
- 【转载】C#中List集合使用Min()方法查找到最小值
在C#的List集合操作中,有时候需要查找到List集合中的最小值,此时可以使用List集合的扩展方法Min方法,Min方法有2种形式,一种是不带任何参数的形式,适用于一些值类型变量的List集合,另 ...
- 【转载】C#中List集合使用RemoveAt方法移除指定索引位置的元素
在C#的List集合操作中,移除集合中的元素可以使用Remove方法,不过Remove方法的参数为具体的List集合中的元素,其实还可以使用List集合的RemoveAt方法来移除List集合中的元素 ...
- c#中list集合使用Max()方法查找到最大值
在C#的List集合操作中,有时候需要查找到List集合中的最大值,此时可以使用List集合的扩展方法Max方法,Max方法有2种形式,一种是不带任何参数的形式,适用于一些值类型变量的List集合,另 ...
- 【转载】C#的ArrayList使用IndexOf方法查找第一个符合条件的元素位置
在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,在ArrayList集合中如果需要查找第一个符合条件的元素所在的位置,可以使用ArrayList集合的IndexOf方法,Index ...
- 【转载】C#中List集合使用GetRange方法获取指定索引范围内的所有值
在C#的List集合中有时候需要获取指定索引位置范围的元素对象来组成一个新的List集合,此时就可使用到List集合的扩展方法GetRange方法,GetRange方法专门用于获取List集合指定范围 ...
- 【转载】C#中List集合使用Contains方法判断是否包含某个对象
在C#的List集合中,如果要查找List集合是否包含某一个值或者对象,如果不使用List集合类的扩展方法的话一般会使用for循环或者foreach遍历来查找,其实List集合类中的扩展方法Conta ...
- 【转载】C#中List集合使用Clear方法清空集合
在C#中的List集合操作过程中,有时候需要清空List集合中的元素对象,将之重置为一个初始化的List集合对象,此时就可以使用到List集合的扩展方法Clear()方法,此方法将清空List集合中所 ...
随机推荐
- SpringBoot框架 之 Druid与Swagger2
目录 Druid Druid连接池配置 Druid数据监控 集成Swagger2 Swagger2简介 1.添加依赖 2.创建Swagger2配置类 3.在控制器方法上添加对应api信息 4.启动Sp ...
- Linux /var/log下各种日志文件
Linux /var/log下各种日志文件:
- docker 部署jar包
docker volume create j1ls /var/lib/docker/volumes/j1/_data 上传jardocker run -it -d --name j1 -v j1:/h ...
- 【前端】input输入框只能输入大于等于0的正数
大于等于0的正数,允许小数 <input type="number" step="1" min="0" onkeyup="t ...
- GCC版本中没有GLIBCXX_3.4.15错误
解决错误呈现该错误的原因是当前的GCC版本中,没有GLIBCXX_3.4.15,须要安装更高版本.我们可以输入:strings /usr/lib64/libstdc++.so.6 | grep GLI ...
- C#对泛型实例化对像的方法
最近在搞一个小东东,用到了泛型的处理,用到了对泛型的实例化问题.下面来讲讲对泛型的实例化,以代码为例,如: public class A { } public class B<T> { p ...
- [LeetCode] 749. Contain Virus 包含病毒
A virus is spreading rapidly, and your task is to quarantine the infected area by installing walls. ...
- 并行编程架构(指令流水、进程、线程、多核,Pipe and Filter)
最近在进行DSP软件优化时,查阅文献,看到了几种并行机制,下面予以总结: 关键词一:指令流水 关键词二:多进程 关键词三:多线程 关键词四:多核(多处理器.超线程结构.多核结构.多核超线程架构) 在体 ...
- 2017ACM/ICPC广西邀请赛 1004 Covering
Covering Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- Gevent模块,协程应用
Gevent官网文档地址:http://www.gevent.org/contents.html 进程.线程.协程区分 我们通常所说的协程Coroutine其实是corporate routine的缩 ...