linq from 多个sum_LINQ子句的一些小整理

对于LINQ这种表达式非常深,这里看了官方文档的实例以后,自己跟着敲了敲,整理一下以后可能会很常用的子句。

所有 LINQ 查询操作都由以下三个不同的操作组成:

  1. 获取数据源。
  2. 创建查询。
  3. 执行查询。

查询在 foreach 语句中执行,因此,foreach 需要 IEnumerable 或 IEnumerable< T> 。支持 IEnumerable< T> 或派生接口(如泛型 IQueryable< T> )的类型称为可查询类型。

8552bf35c6b3e8c0bbde4a999ada8852.png

复合 From 字句

比如要访问每个Student元素的内部列表,可以使用复合from子句。类似于使用嵌套的foreach语句。可以向任一from子句中添加where

或orderby子句筛选结果。

[TestClass]
  

使用多个from子句执行联接

public 

08e7456825b3e5d8356b4ecd990db2ec.png
public 

a9c94290c03c2269b14f9635a7abebcd.png

复合from子句用于独立访问单个数据源中的内部集合,通过此方法可以执行使用join子句无法实现的某种联接操作。

group子句

group子句返回一个IGroup<TKey,TElement>对象序列,这些对象包含两个或更多与该组的键值匹配的项。

例如可以按照每个字符串中的第一个字母对字符串序列进行分组。

这种情况下,第一个字母就是键,char,

// Query variable is an IEnumerable<IGrouping<char, Student>> 

要对每个组执行附加查询操作,可使用上下文关键字into指定一个临时标识符。

使用

从注释上看到 返回的值是一个IEnumerable<IGrouping<char, Student>>

所以我们用foreach遍历是这样:

// Iterate group items with a nested foreach. This IGrouping encapsulates // a sequence of Student objects, and a Key of type char. // For convenience, var can also be used in the foreach statement. 

let

作为方法的调用结果的方便存储位置,因此无需在group子句中调用该方法两次。

class 

into

关键字启用具有推断类型IGroup的临时标识符fruitGroup。

通过使用该标识符,可以对每个组调用Count方法,并且仅选择那些包含两个或者更多个单词的组。

public 

e1cca0a2107fb673b4b552af9b0ffc9c.png

ff199f2fba33af5250ddf0bd790b3416.png

orderby子句可导致返回的序列或子序列以升序或降序,若要执行一个或多个次级排列操作,可以指定多个键

join 子句执行的所有联接都是同等联接,join子句的输出形式取决于执行的联接具体类型。

  • 内部联接
  • 分组联接
  • 左外部联接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值