在C#的List集合中查找一个符合条件的元素,一般我们会用First方法或者FirstOrDefault方法来返回第一个符合条件的对象,First方法和FirstOrDefault的调用都是使用Lambda表达式方式来书写查询语句条件。其实建议统一使用FirstOrDefault方法来查询List集合中符合条件的第一个记录,因为First方法在无法查到任何符合条件信息的对象的情况下,会直接抛出System.InvalidOperationException异常,提示序列不包含任何匹配元素。而使用FirstOrDefault方法则不会抛出异常,如果在List集合中未查找到符合条件的元素对象,则返回默认值,如果是对象类型的数据则返回Null,其余基础类型返回对应的默认值。

例如,我们有个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" });

使用First方法来查找Index=12的记录的语句为:var model = list.First(t => t.Index == 12)。此代码块在运行的时候直接抛出System.InvalidOperationException异常,提示序列不包含任何匹配元素,然后程序终止执行。而如果使用FirstOrDefault方法来书写的话,相关语句则为var model = list.FirstOrDefault(t => t.Index == 12)。返回的model变量的值为null,只需要在后续代码中判断model是否为null即可,程序在运行时候不会直接抛出异常。

得出结论:First方法和FirstOrDefault方法尽量使用FirstOrDefault方法来实现查找功能,FirstOrDefault方法不会直接抛出程序运行时异常而终止程序的执行。

备注:原文转载自博主个人站IT技术小趣屋,原文链接C#中List集合First和FirstOrDefault方法有何不同_IT技术小趣屋

博主个人技术交流群:960640092,博主微信公众号如下:

【转载】C#中List集合First和FirstOrDefault方法有何不同的更多相关文章

  1. 【转载】C#中List集合SingleOrDefault和FirstOrDefault方法有何不同

    在C#的List集合类的操作过程中,有时候我们会使用到List集合的SingleOrDefault方法和FirstOrDefault等方法,这2个方法都是System.Linq.Enumerable类 ...

  2. [转载]C#中字典集合的两种遍历

    Dictionary<string, string> dictionary = new Dictionary<string,string>(); foreach (string ...

  3. [转载]C#中播放背景音乐几种的方法

    最经在写winform程序,其中有用到播放背景音乐 特此收集了一些网上的教程: 1.调用非托管的dll using System.Runtime.InteropServices; //DllImpor ...

  4. [转载]Winform中Control的Invoke与BeginInvoke方法

    转自http://www.cppblog.com/baby-fly/archive/2010/04/01/111245.html 一.为什么 Control类提供了 Invoke和 BeginInvo ...

  5. 【转载】C#使用FirstOrDefault方法快速查找List集合中符合条件的第一个实体

    在C#的List集合的操作中,有时候我们需要根据相关条件快速从List集合中获取到第一个符合条件的实体对象,例如有个全校班级的List集合,我们需要根据班级代码快速从List集合中查找出班级信息.可以 ...

  6. 【转载】C#中List集合使用LastOrDefault方法查找出最后一个符合条件的元素

    在C#的List集合中,FirstOrDefault方法一般用来查找List集合中第一个符合条件的对象,如果未查到则返回相应默认值.其实如果要查找最后一个符合条件的List集合元素对象,可以使用Las ...

  7. 【转载】C#中List集合使用Remove方法移除指定的对象

    在C#的List集合操作中,有时候需要将特定的对象或者元素移除出List集合序列中,此时可使用到List集合的Remove方法,Remove方法的方法签名为bool Remove(T item),it ...

  8. 【转载】 C#中List集合使用First方法查找符合条件的第一个元素

    在C#的List集合相关操作中,很多时候需要从List集合中查找出符合条件的第一个元素对象,如果确认在List集合中一定存在符合条件的元素,则可以使用First方法来查找,First方法调用格式为Fi ...

  9. 【转载】C#中List集合中Last和LastOrDefault方法的差别

    在C#的List集合操作中,Last方法和LastOrDefault方法都会用来查找集合中最后一个符合条件的元素对象,但Last和LastOrDefault方法还是有差别的,建议使用LastOrDef ...

随机推荐

  1. 2015-2016-2《Java程序设计》团队博客2

     简易画图板介绍 一.功能结构图 二.主类设计 1.总体设计:在设计简易画图板时,根据程序功能的分类,包含了十二个文件,包括SimpleDraw.java,MenuContainer.java,Dra ...

  2. [Beta]第九次 Scrum Meeting

    [Beta]第九次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/5/19 21:20 20min 大运村公寓6F寝室 附Github仓库:WEDO 例会照片 (一人回 ...

  3. JSP的工作原理

    jsp的本质就是一个servlet,jsp在第一次被访问时会被Web容器翻译成servlet index.jsp -> index_jsp.java -> 编译成index_jsp.cla ...

  4. [Web 安全] WASC 和 OWASP两个web安全方面组织机构介绍

    copy from :  http://blog.sina.com.cn/s/blog_70b7aab9010126mn.html WASC 和 OWASP.这两个组织在呼吁企业加强应用安全意识和指导 ...

  5. Plupload的几个demo

    Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的<input type=”file” />.Plupload会自动侦测当前 ...

  6. (转)CentOS 7.6 上编译安装httpd 2.4.38

    原文:https://www.s4lm0x.com/archives/40.html https://www.cnblogs.com/sunshine-H/p/8110608.html----超详细 ...

  7. WebGL学习笔记(七):输入和动画

    目前为止,我们绘制出来的3D物体都是静止的,接下来我们需要让桌面上的小盒子可以根据我们按键(上下键)前进后退: 输入方面,监听按键和鼠标消息直接在document上添加对应的监听就行了: 动画这块,我 ...

  8. [IR] Inverted Index & Boolean retrieval

    教材:<信息检索导论> 倒排索引 How to build Inverted Index? 1. Token sequence. 2. Sort by terms. 3. Dictiona ...

  9. EasyNVR网页Chrome无插件播放安防摄像机视频流是怎么做到web浏览器延时一秒内

    背景说明 由于互联网的飞速发展,传统安防摄像头的视频监控直播与互联网直播相结合是大势所趋.传统安防的直播大多在一个局域网内,在播放的客户端上也是有所限制,一般都需要OCX Web插件进行直播.对于安防 ...

  10. Spring MVC -- Spring MVC入门

    本篇博客首先介绍Spring MVC的优点,然后介绍Spring MVC的基本组件,包括DispatcherServlet,并学习如何开发一个“传统风格”的控制器,这是在Spring 2.5版本之前开 ...