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 ...
随机推荐
- 【转】SHELL中的IFS详解
转自:http://smilejay.com/2011/12/bash_ifs/ 在bash中IFS是内部的域分隔符,manual中对其的叙述如下: IFS The Internal Field Se ...
- 关于2016.12.12——T1的反思:凸包的意义与应用
2016.12.12 T1 给n个圆,保证圆圆相离,求将圆围起来的最小周长.n<=100 就像上图.考场上,我就想用切线的角度来做凸包.以圆心x,y排序,像点凸包一样,不过用两圆之间的下切线角度 ...
- AR初体验:宣传G20
最近Pokemon Go太火,它基于LBS(Location Based Service)+AR(Augmented Reality)的一款游戏,这股风,一定会让国内的公司纷纷效仿,你懂的.不可否定的 ...
- jsonp帮助你知道你关注的他或她喜欢什么歌曲
利用腾讯提供的QQ音乐API,返回一段对方在QQ音乐收藏的歌曲名称json数据,并对该json做解析,就能知道你的那个他或她喜欢听什么歌曲了,然后你就知道他/她的品位了,然后就自己看着办了,嘿嘿.我只 ...
- asp.net 项目Net4.0 在IE10、 IE 11 下出现 “__doPostBack”未定义 的解决办法
我的项目中,服务器端是Windows Server2008 64位,.net版本是4.0,也遇到了树形结构控件.DropDownList控件等不能调用服务器端代码.最后发现js报错. 错误信息:“__ ...
- zookeeper在linux下自启动
Linux下设置zookeeper开机自启动 一.以root用户登录系统: 二.进入init.d文件夹 cd /etc/init.d/ 三.创建并打开zookeeper文件 vi zookeeper ...
- C# 使用IComparer自定义List类的排序方案
List类中不带参数的Sort函数可以用来为List类中的元素排序,但如果List类中的元素类型本身不能直接进行比较(如自定义的struct和很多class),或是希望采用更加灵活的自定义比较方式,可 ...
- JVM中对象的销毁
1.可达性分析算法: 可达性分析算法用来寻找将要销毁的对象,它的基本思路是:通过一系列的称为“GC ROOTs”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径成为引用链,当一个对象到GC ...
- 不同类型的指针+1之后增加的大小不同(a,&a的地址是一样的,但意思不一样)
main() { ]={,,,,}; ); printf(),*(ptr-)); } *(a+1)就是a[1],*(ptr-1)就是a[4], 执行结果是2, 5.&a+1不是首地址+1,系统 ...
- javascript中的内置对象总结
内置对象 标准内置对象 Object Object.create Object.prototype.toString Object.prototype.hasOwnProperty Boolean S ...