元素操作符从一个序列返回单个指定的元素。

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元素操作符的更多相关文章

  1. LINQ系列目录

    1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...

  2. C# ~ 从 XML 到 Linq 到 Linq to XML

    .XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...

  3. LINQ系列:Linq to Object集合操作符

    集合操作符对元素的集合或序列集合进行操作,并返回一个集合.LINQ共有4种集合查询操作符:Distinct.Union.Intersect和Except. 1. Distinct Distinct操作 ...

  4. linq操作符:元素操作符

    元素操作符仅返回一个元素. 一.Fitst操作符 First操作符将返回序列中的第一个元素.如果序列中不包含任何元素,则First<T>方法将引发异常.来看看First()方法的定义: 从 ...

  5. LinQ系列文章

    温故而知新,想着系统再学习一次LinQ知识点,发现园子里有个非常棒的系列文章,所以Mark下来,方便以后查阅! 系列博客导航: LINQ之路系列博客导航 LINQ之路 1:LINQ介绍 LINQ之路 ...

  6. LINQ 系列

    C#图解教程 第十九章 LINQ   LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...

  7. C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换

    LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...

  8. Linq系列

    LINQ 图解 Linq中的Select——投影 Linq学习资源 Expert C# 5.0中的Linq部分

  9. LINQ之LINQ to Objects(上)

    LINQ概述 LINQ,语言集成查询(Language Integrated Query),它允许使用C#或VB代码以查询数据库相同的方式来操作不同的数据源. 1.LINQ体系结构 从上图可以看出,L ...

随机推荐

  1. 缺少.lib文件导致的Link2019 解决方案汇总

    环境Vs2015,  Win10 添加lib的方法在末尾 下面的错误都是我在写Direct3D程序中遇到的, 记下来方便查找 4.ws2_32.lib 3.   version.lib _GetFil ...

  2. JQuery基本知识框架思维导图(上)

    一:认识jQuery 1.window.onload与$(document).ready()的对比 2.jQuery代码风格(1:链式代码风格2:位代码添加注释) 3.jQuery对象和DOM对象(1 ...

  3. JavaScript对象状态

    有限状态机(Finite-state machine)是一个非常有用的模型,可以模拟世界上大部分事物. 简单说,它有三个特征: * 状态总数(state)是有限的. * 任一时刻,只处在一种状态之中. ...

  4. xcode 一般插件

    插件编写 xcode的插件不算多,找遍了网络也就大猫小猫而三只.不过虽然不多,但是大部分的插件都非常有用.以下5歀插件是我几台机器上都安装了并且经常使用的. 1. MiniXcode MiniXcod ...

  5. java 过滤表情符号

    /** * 过滤表情符号 * @create by ldw on 2016-10-25 * @param str * @return str(去掉表情符号的字符串) * @version 1.0 * ...

  6. openGL实现二维图形和三维图形

    openGL是一个强大的底层图形库,其命令最初的时候使用C语言实现的.openGL定义了一个图形程序接口,常用于制作处理三维图像,功能强大,调用方便,在图像处理十分受欢迎. 实现图形主要使用的是ope ...

  7. 最小生成树 prime poj1287

    poj1287 裸最小生成树 代码 #include "map" #include "queue" #include "math.h" #i ...

  8. CSS Sticky Footer

    ----CSS Sticky Footer 当正文内容很少时,底部位于窗口最下面.当改变窗口高度时,不会出现重叠问题. ----另一个解决方法是使用:flexBox布局  http://www.w3c ...

  9. SQL 去掉某字段括号中的值

    今天在数据库匹配数据的时候,发现一些数据存在别名,导致我的数据匹配不上.在这里记录分享一下 例如: 李钟硕 (Lee Jong Suk),这里我匹配的是 “李钟硕” 示例1: SELECT rever ...

  10. int与string类型的转换

    在SQL语句中 在JS中, (1) var   x=100    a   =   x.toString()   (2) var   x=100;    a   =   x   +"" ...