首页
学习
活动
专区
圈层
工具
发布

C#3.0新增功能09 LINQ 标准查询运算符 03 按执行方式的分类

本篇根据标准查询运算符的执行方式对其进行分类。 执行方式 即时 立即执行指的是在代码中声明查询的位置读取数据源并执行运算。 返回单个不可枚举的结果的所有标准查询运算符都立即执行。...在执行时,流式处理运算符一边读取每个源元素,一边对该源元素执行运算,并在可行时生成元素。 流式处理运算符将持续读取源元素直到可以生成结果元素。 这意味着可能要读取多个源元素才能生成一个结果元素。...在执行时,非流式处理查询运算符将读取所有源数据,将其放入数据结构,执行运算,然后生成结果元素。 分类表 下表按照执行方法对每个标准查询运算符方法进行了分类。...在此类情况下,参数列表中的第一个序列始终以延迟流式处理方式来执行计算。...Boolean X Single TSource X SingleOrDefault TSource X Skip IEnumerableT> X SkipWhile IEnumerable

75220

LINQ查询操作符 LINQ学习第二篇

Where操作符不启动查询的执行。当开始对序列进行遍历时查询才开始执行,此时过滤条件将被应用到查询中。Where操作符的使用方法已经在第一节中出现过,这里不再冗述。...Aggregate Aggregate操作符对集合值执行自定义聚合运算。例如,需要列出所有产品类别清单,每个类别名称之间用顿号连接。...此方法一般仅用于实现类中的方法与IEnumerableT>接口方法重名时。例如,实现类Test中有一个Where方法,当使用Test对象调用Where时,将执行Test自身的Where方法过程。...如果要执行IEnumerableT>的Where方法,便可以使用AsEnumerable进行进行转换后,再调用Where方法即可。...下图显示对一个字符序列执行三个不同的分区操作的结果。第一个操作返回序列中的前三个元素。第二个操作跳过前三个元素,返回剩余的元素。第三个操作跳过序列中的前两个元素,返回接下来的三个元素。 1.

3.9K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    LINQ常用扩展方法、委托、Lambda、yield

    LINQ让数据处理变得简单 Where方法  每一项数据都会经过predicate的测试,如果针对一个元素,predicate执行的返回值为true,那么这个元素就会放到返回值中。...Employee e2 = list.SingleOrDefault(e => e.Id == 4); Employee e3 = list.SingleOrDefault(e => e.Id == 10...ThenByDescending(e => e.Salary) // 千万不要写成 // list.OrderBy(e => e.Age).OrderByDescending(e => e.Salary) 限制结果集...集合转换  有一些地方需要数组类型或者List类型的变量,可以用ToArray()方法和ToList()分别把IEnumerableT>转换为数组类型和ListT>类型。...(g => g.Count())//按次数排序 .Select(g=>new { Char=g.Key,Count=g.Count()}); 委托 1、委托是可以指向方法的类型,调用委托变量时执行的就是变量指向的方法

    46010

    由浅入深表达式树(完结篇)重磅打造 Linq To 博客园

    想对所有关注的朋友说声:“对不起,我来晚了!” 希望最后一篇的内容对得起这一个月时间的等待。在学习完表达式树的创建和遍历之后,我们要利用它的特性来写一个我们自己的Linq Provider。...来看看我们对Url参数的定义: ? 标题中包括模式的文章:http://linqtocnblogs.cloudapp.net?...public static IEnumerableT> WhereT>(this IEnumerableT> list, FuncT, bool> predicate) { var result...可以在运行时去遍历解释然后执行,那么这样就可以将表达式转换成各种其它的方式去获取数据,伟大的Linq to SQL就是这么实现的。...主要用于计算指定表达式目录树所表示的查询,返回的结果是一个可枚举的类型。 而Execute会执行指定表达式目录树所表示的查询,返回指定的结果。

    2K60

    【asp.net core 系列】8 实战之 利用 EF Core 完成数据操作层的实现

    主要是为了对实现类隐藏具体的EF 上下文实现类。...T Get(ExpressionT, bool>> predicate) { return Set.SingleOrDefault(predicate); } public int...不过,这里可以根据实际业务需要修改方法: Single 返回单个数据,如果数据大于1或者等于0,则抛出异常 SingleOrDefault 返回单个数据,如果结果集没有数据,则返回null,如果多于1,...则抛出异常 First 返回结果集的第一个元素,如果结果集没有数据,则抛出异常 FirstOrDefault 返回结果集的第一个元素,如果没有元素则返回null 实现查询方法: public List执行SaveChanges方法。 这一篇介绍到这里,虽然说明不是很多,但是这也是我在开发中总结的经验。

    2.2K40

    C#3.0新增功能09 LINQ 标准查询运算符 04 运算

    下图展示了对一系列字符执行按字母顺序排序操作的结果。 ? 下节列出了对数据进行排序的标准查询运算符方法。 方法 方法名 说明 C# 查询表达式语法 详细信息 OrderBy 按升序对值排序。...联合 下图演示对两个字符序列执行的联合操作。 返回的序列包含两个输入序列的唯一元素。 ? 03 筛选数据 筛选是指将结果集限制为仅包含满足指定条件的元素的操作。 它也称为选定内容。...下图演示了对字符序列进行筛选的结果。 筛选操作的谓词指定字符必须为“A”。 ? 下面一节列出了执行所选内容的标准查询运算符方法。...方法名 说明 C# 查询表达式语法 详细信息 AsEnumerable 返回类型化为 IEnumerableT> 的输入。 不适用。...Enumerable.ToDictionary ToList 将集合转换为 ListT>。 此方法强制执行查询。 不适用。

    12.7K20

    C#3.0新增功能07 查询表达式

    应用程序始终将源数据视为 IEnumerableT> 或 IQueryableT> 集合。 例如在 LINQ to XML 中,源数据显示为 IEnumerable。...更具体地说,查询变量始终是可枚举类型,在 foreach 语句或对其 IEnumerator.MoveNext 方法的直接调用中循环访问时会生成元素序列。...查询变量不存储在 foreach 循环生成中的任何实际结果数据。 并且当 foreach 语句执行时,查询结果不会通过查询变量 scoreQuery 返回。...创建这些组之后,附加子句会筛选出一些组,然后按升序对组进行排序。 若要执行这些附加操作,需要由 countryGroup 表示的延续。...orderby 子句 使用 orderby 子句可按升序或降序对结果进行排序。 还可以指定次要排序顺序。 下面的示例使用 Area 属性对 country 对象执行主要排序。

    2.9K10

    EntityFramework数据持久化复习资料5、LINQ概述与应用(超终点)

    以前是使用ADO.NET来进行对数据库中得数据表进行操作,现在,使用ORM直接对对象进行操作,操作对象就等于操作数据库表, 那怎么让对象和数据库表一一对应起来?...LINQ关键字 关键字 说明 from 指定范围变量和数据源 where 根据bool表达式从数据源中筛选数据 select 指定查询结果中的元素所具有的类型或表现形式 group 对查询结果按照键/值执行分组...into 提供一个标识符,它可以充当对join、group或select子句结果的引用 orderby 对查询出的元素执行排序(ascending/descending) join 按照两个指定匹配条件对等连接两个数据源...let 产生一个用于存储子表达式查询结果的范围变量 LINQ语法 只有实现了【IEnumerable】接口的数据源,才能执行相关的LINQ操作。...使用SingleOrDefault查询出两个相同的结果依然会出现异常提示) 一般情況下都会使用【SingleOrDefault】,因为这能直接判断这个唯一的信息是否正确,项目中出现相同的值肯定是有异常的

    3.2K20
    领券