.NET中First,FirstOrDefault,Single,SingleOrDefault的区别
类别:编程学习 浏览量:3307
时间:2015-10-30 .NET中First,FirstOrDefault,Single,SingleOrDefault的区别
.NET中First,FirstOrDefault,Single,SingleOrDefault的区别一、First
取序列中满足条件的第一个元素,如果没有元素满足条件,则抛出异常
二、FirstOrDefault
取序列中满足条件的第一个元素,如果没有元素满足条件,则返回默认值(对于可以为null的对象,默认值为null,对于不能为null的对象,如int,默认值为0)
三、Single
返回序列中的唯一一条记录,如果没有或返回多条,则引发异常。
四、SingleOrDefault
返回序列中的唯一一条记录,如果序列中不包含任何记录,则返回默认值,如果返回多条,则引发异常。
五、使用场合
1、当确信序列中一定有满足条件的元素时,使用First方法,取到元素后,无需判断是否为null
2、当序列中可能找不到满足条件的元素时,使用FirstOrDefault方法,然后,一定要对返回值是否为null,进行不同的处理
六、实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SingleOrDefaultDemo
{
class Program
{
static void Main(string[] args)
{
var lst = new List<int> { 10, 20, 100, 30, 60, 50, 80 };
//输出结果:10
Console.WriteLine("First:{0}", lst.First());
//输出结果:10
Console.WriteLine("FirstOrDefault:{0}", lst.FirstOrDefault());
//输出结果:100(注:因为这里的First是按List<int>的索引来取第一个符合条件的元素,所以结果是100,而不是按从小到大的顺序)
Console.WriteLine("First:{0}", lst.First(x => x > 30));
//输出结果:100(同上First)
Console.WriteLine("FirstOrDefault:{0}", lst.FirstOrDefault(x => x > 30));
// 抛出异常:序列包含一个以上的元素
//Console.WriteLine("Single:{0}", lst.Single());
// 抛出异常:序列包含一个以上的元素
//Console.WriteLine("SingleOrDefault:{0}", lst.SingleOrDefault());
//抛出异常:序列不包含任何匹配元素
//Console.WriteLine("Single:{0}", lst.Single(x => x > 100));
//输出结果:0
Console.WriteLine("SingleOrDefault:{0}", lst.SingleOrDefault(x => x > 100));
Console.WriteLine("Press any key to quit...");
Console.ReadKey();
}
}
}
标签:linq
您可能感兴趣
- datatable linq查询
- linq xml 查询
- linq中let
- linq 排序
- Linq操作Datable
- linq not in 查询
- linq中join用法
- Linq中select查询
- 如何查看linq生成的sql
- linq 数据类型转换
- linq中group by
- linq中延迟执行
- LINQ TO SQL 中join
- Linq中的TakeWhile和SkipWhile
- linq to sql 中Concat、Union、Intersect、Except
- Linq中where查询
- 盘古开天地 他创造了世界,谁创造了盘古 盘古是伏羲吗(盘古开天地他创造了世界)
- 关于队徽 你了解这些么 二(关于队徽你了解这些么)
- 冬天来了手脚冰凉 真不是因为上辈子你是折翼的天使(冬天来了手脚冰凉)
- 0 1 岁婴儿最强作息指南,照着做养出天使宝宝(01岁婴儿最强作息指南)
- 沪上这16所高校 萌新 礼包开箱 哪一款让你心动(沪上这16所高校萌新)
- 她救了被绑架的他,而这一切竟是一场阴谋...(她救了被绑架的他)
热门推荐
- react中state的作用是什么(React中useEffect 与 useLayoutEffect的区别)
- python的基础数据结构有哪些(详解python的四种内置数据结构)
- 服务器使用docker(使用ssh连接docker服务器的方法)
- jQuery中$.each的用法
- linux关闭autofs服务命令(Linux系统的ECS实例挂载NAS提示“mount: can't find /root/nas in /etc/fstab”错误的解决)
- wamp环境下源码如何安装(从wamp到xampp的升级之路)
- python3html怎么转换成pdf(Python实现html转换为pdf报告生成pdf报告功能示例)
- mysql8.0查询操作(MySQL 8.0 redo log的深入解析)
- python提供的四种基本数据类型(浅谈python的输入输出,注释,基本数据类型)
- webgl api 源码(基于 HTML5 WebGL 实现的医疗物流系统)