LINQ系列:Linq to Object元素操作符
元素操作符从一个序列返回单个指定的元素。
1. DefaultIfEmpty
DefaultIfEmpty操作符将一个空集合替换为包含默认的单个值的集合。在返回序列为空且又需要返回一些对象时,可以通过该操作符返回一个默认值。
1>. 原型定义
public static IQueryable<TSource> DefaultIfEmpty<TSource>(this IQueryable<TSource> source);
public static IQueryable<TSource> DefaultIfEmpty<TSource>(this IQueryable<TSource> source, TSource defaultValue);
2>. 示例
var expr = from p in contex.Products
select p.ProductName; foreach (var item in expr.DefaultIfEmpty())
{
Console.WriteLine(item);
}
2. ElementAt
ElementAt操作符返回集合中给定索引处的元素。集合索引从0开始计的,返回值是数据源中指定位置的元素。
1>. 原型定义
public static TSource ElementAt<TSource>(this IEnumerable<TSource> source, int index);
2>. 示例
int[] fibonacci = new int[] { , , , , , , , };
fibonacci.ElementAt();
3. ElementAtOrDefault
ElementAtOrDefault操作符将ElementAt操作符和DefaultIfEmpty操作符的部分功能结合在一起,返回在指定索引处的元素。如果索引超出范围则返回默认值。
1>. 原型定义
public static TSource ElementAtOrDefault<TSource>(this IEnumerable<TSource> source, int index);
2>. 示例
int[] fibonacci = new int[] { , , , , , , , };
fibonacci.ElementAtOrDefault();
4. First
First操作符返回集合中的第一个元素,如果数据源不包含任何元素,此方法将抛出一个异常。
1>. 原型定义
public static TSource First<TSource>(this IQueryable<TSource> source);
public static TSource First<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
2>. 示例
var expr = context.Products.First();
var expr = context.Products.First(p => p.UnitPrice > 10m);
5. FirstOrDefault
FirstOrDefault操作符返回集合中的第一个元素,或者如果没有发现任何元素则返回默认值。
1>. 原型定义
public static TSource FirstOrDefault<TSource>(this IQueryable<TSource> source);
public static TSource FirstOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
2>. 示例
var expr = context.Products.FirstOrDefault();
var expr = context.Products.FirstOrDefault(p => p.UnitPrice > 10m);
6. Last
Last操作符返回集合中的最后一个元素,如果数据源不包含任何元素,此方法将抛出一个异常。
1>. 原型定义
public static TSource Last<TSource>(this IQueryable<TSource> source);
public static TSource Last<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
2>. 示例
var expr = context.Products.Last();
var expr = context.Products.Last(p => p.UnitPrice > 10m);
7. LastOrDefault
LastOrDefault操作符返回集合中的最后一个元素,或者如果没有找到任何元素则返回一个默认值。
1>. 原型定义
public static TSource LastOrDefault<TSource>(this IQueryable<TSource> source);
public static TSource LastOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
2>. 示例
var expr = context.Products.LastOrDefault();
var expr = context.Products.LastOrDefault(p => p.UnitPrice > 10m);
8. Single
Single操作符从一个序列中返回单个元素,或唯一满足指定条件的元素,如果数据源不包含任何元素,此方法将抛出一个异常。
1>. 原型定义
public static TSource Single<TSource>(this IQueryable<TSource> source);
public static TSource Single<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
2>. 示例
var expr = context.Products.Single();
var expr = context.Products.Single(p => p.UnitPrice > 10m);
9. SingleOrDefault
SingleOrDefault操作符从一个序列中返回单个元素,如果没有发现元素则返回一个默认值。
1>. 原型定义
public static TSource SingleOrDefault<TSource>(this IQueryable<TSource> source);
public static TSource SingleOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
2>. 示例
var expr = context.Products.SingleOrDefault();
var expr = context.Products.SingleOrDefault(p => p.UnitPrice > 10m);
LINQ系列:Linq to Object元素操作符的更多相关文章
- LINQ系列目录
1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...
- C# ~ 从 XML 到 Linq 到 Linq to XML
.XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...
- LINQ系列:Linq to Object集合操作符
集合操作符对元素的集合或序列集合进行操作,并返回一个集合.LINQ共有4种集合查询操作符:Distinct.Union.Intersect和Except. 1. Distinct Distinct操作 ...
- linq操作符:元素操作符
元素操作符仅返回一个元素. 一.Fitst操作符 First操作符将返回序列中的第一个元素.如果序列中不包含任何元素,则First<T>方法将引发异常.来看看First()方法的定义: 从 ...
- LinQ系列文章
温故而知新,想着系统再学习一次LinQ知识点,发现园子里有个非常棒的系列文章,所以Mark下来,方便以后查阅! 系列博客导航: LINQ之路系列博客导航 LINQ之路 1:LINQ介绍 LINQ之路 ...
- LINQ 系列
C#图解教程 第十九章 LINQ LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- Linq系列
LINQ 图解 Linq中的Select——投影 Linq学习资源 Expert C# 5.0中的Linq部分
- LINQ之LINQ to Objects(上)
LINQ概述 LINQ,语言集成查询(Language Integrated Query),它允许使用C#或VB代码以查询数据库相同的方式来操作不同的数据源. 1.LINQ体系结构 从上图可以看出,L ...
随机推荐
- Avoiding InvokeRequired
Just read a good article to do cross-thread calling in an easy and elegant way. It is amazing for it ...
- DoD and DoR
Definition of Ready User Story is defined Acceptance criteria(functional and non-functional requirem ...
- grunt 单独压缩多个js和css文件【转】
原文地址:http://xiaomiya.iteye.com/blog/2177877 使用grunt来压缩前端js,css文件 因为最近做的客户端本地项目有用到十几个js,js提交之前都需要压缩.用 ...
- Linux_10个需要了解的Linux网络和监控命令(转)
源文地址:http://www.linuxde.net/2013/10/15325.html 1. hostname hostname 没有选项,显示主机名字 hostname –d 显示机器所属域名 ...
- *POJ1830 高斯消元
开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8010 Accepted: 3161 Description ...
- Windows 下的 Redis 的启动
1. 首先需要去下载Windows 版本的Redis,地址:https://github.com/MSOpenTech/redis, 这里你可以选择下载源码后自己编译,也可以直接下载发布后的版本,我是 ...
- bzoj1455: 罗马游戏 + bzoj2809: Dispatching(可并堆)
昨天看了可并堆是什么,写的是左偏树 大概就是一棵树 1.有左偏性质,即当前根到左叶子节点距离比到右叶子节点距离大 2.有堆性质,堆顶关键字比子树关键字小 合并两个堆的时候,关键字大的插入到关键字小的那 ...
- Unity3D 物体跟随鼠标旋转
float speed=1000f; void Update () { if (Input.GetMouseButton (0)) { transform.Rotate (0,-Input.GetAx ...
- SQL Server2005清除数据库日志
SQL2005清空删除日志: 复制代码 代码如下: Backup Log DNName with no_log '这里的DNName是你要收缩的数据库名,自己注意修改下面的数据库名,我就不再注释了 ...
- maven web项目中web.xml
web.xml 不是web工程必须的. web.xml文件用来配置那些东西:欢迎页,servlet,filter等. web.xml文件中定义了多少种标签元素,web.xml 中就可以出现它的模式文件 ...