关于Linq中First、FirstOrDefault;Single、SingleOrDefault等方法的说明
关于Linq中First、FirstOrDefault;Single、SingleOrDefault等方法的说明
这里以First、FirstOrDefault进行说明,其他类似。 
1、First:取序列中满足条件的第一个元素,如果没有元素满足条件,则抛出异常
2、FirstOrDefault:取序列中满足条件的第一个元素,如果没有元素满足条件,则返回默认值(对于可以为null的对象,默认值为null,对于不能为null的对象,如int,默认值为0)
3、Single,返回序列中的唯一一条记录,如果没有或返回多条,则引发异常。
4、SingleOrDefault,返回序列中的唯一一条记录,如果序列中不包含任何记录,则返回默认值,如果返回多条,则引发异常。
注:以上默认值为NULL。
First、FirstOrDefault的区别在于:当没有元素满足条件时,一个抛出异常,一个返回默认值。
因此,在使用时,一定要注意这个区别: 
1、当确信序列中一定有满足条件的元素时,使用First方法,取到元素后,无需判断是否为null
2、当序列中可能找不到满足条件的元素时,使用FirstOrDefault方法,然后,一定要对返回值是否为null,进行不同的处理
关于Linq中First、FirstOrDefault;Single、SingleOrDefault等方法的说明的更多相关文章
- List中函数用法 First,FirstOrDefault,Single,SingleOrDefault的区别
		操作符 如果源序列是空的 源序列只包含一个元素 源序列包含多个元素 First 抛异常 返回该元素 返回第一个元素 FirstOrDefault 返回default(TSource) 返回该元素 返回 ... 
- linq中first() firstordefault() last() lastOrDefault() single() singleOrDeafult
		一.firstordefault() 和 first() class Program { static void Main(string[] args) { List<Emp> list ... 
- First,FirstOrDefault,Single,SingleOrDefault的区别
		操作符 如果源序列是空的 源序列只包含一个元素 源序列包含多个元素 First 抛异常 返回该元素 返回第一个元素 FirstOrDefault 返回default(TSource) 返回该元素 返回 ... 
- EntityFramework  First,FirstOrDefault,Single,SingleOrDefault的区别
		操作符 如果源序列是空的 源序列只包含一个元素 源序列包含多个元素 First 抛异常 返回该元素 返回第一个元素 FirstOrDefault 返回default(TSource) 返回该元素 返回 ... 
- Linq中Select查询参数提取公共方法
		class Program { static void Main(string[] args) { var listTest1 = new List<Test1> { "}, & ... 
- 转载有个小孩跟我说LINQ(重点讲述Linq中GroupBy的原理及用法)
		转载原出处: http://www.cnblogs.com/AaronYang/archive/2013/04/02/2994635.html 小孩LINQ系列导航:(一)(二)(三)(四)(五)(六 ... 
- Linq中关键字的作用及用法
		Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ... 
- linq中AsEnumerable和AsQueryable的区别
		本文导读:用Linq来操作集合的时候会用到AsQueryable()和AsEnumerable(),何时该用AsQueryable()和何时该用AsEnumerable(),或许存在些疑惑.AsQue ... 
- Linq中使用Left Join
		use Test Create table Student( ID ,) primary key, ) not null ) Create Table Book( ID ,) primary key, ... 
随机推荐
- 关于css浮动框是否脱离文档流的分析
			在了解浮动属性之前,首先我们先了解一下html中关于display属性的相关知识. display属性常用的有inline, block, inline-block. inline也就是内联的意思. ... 
- 498_Diagonal-Traverse
			目录 498_Diagonal-Traverse Description Solution Java solution Python solution 1 Python solution 2 Pyth ... 
- Rechnernetz
			1.Der Aufbau des Internets 1.1 Randabschnitt Er besteht aus Rechner,der mit Internet verbunden ist.D ... 
- 阿里云 ECS服务器安装流程
			1. 挂载硬盘 2. 上传文件 3 .vncserver unset DISPLAY who -u export DISPLAY= xhost + 4. java /etc/profile expor ... 
- 私有字段private也可以外部访问
			<?php//私有字段private也可以外部访问class nowamagic { private $domain; function __get($key){ return "使用 ... 
- 玩转树莓派《三》——Scratch
			今天大姨妈折磨了一整个白天,稍微好点,现在打开实验楼,看到有个朋友回答了关于ubuntu上面操作SQL 的时候到处数据到txt文件,被批评没有思考问题,或许吧,虽然那个权限我现在想起确实是可读可写的, ... 
- ajax 传递数组给后台.net MVC 控制器
			数组结构为: [ "5ae92c2786f3591b2cff1be5", "5ae91bb7ca673569a8d23a6e" ] 前台代码: $.ajax({ ... 
- mvc手把手教你写excel导入[mvc+三层,没用EF]
			实习狗的每天新知识日常 准备工作: 1.在项目中添加对NPOI的引用,NPOI下载地址:http://npoi.codeplex.com/releases/view/38113 2.NPOI学习系列教 ... 
- NFS挂载时出现"access denied by server while mounting"的解决方法
			NFS挂载时出现"access denied by server while mounting"的解决方法 2015-01-14 何敏杰 3条评论 44,071次浏览 NFS是 ... 
- MongoTemplate基本操作
			本文基于spring boot项目,快速构建项目请参考:https://www.cnblogs.com/lay2017/p/8836273.html 添加mongo依赖 <dependency& ... 
