Linq数据分组全面描述

开发 后端
这里介绍Linq数据分组,包括介绍listField1, listField2 、keyExp1、keyExp2和aggregateList :必需。一个或多个表达式,标识如何对组进行聚合。

Linq有很多值得学习的地方,这里我们主要介绍Linq数据分组,包括介绍使用 Group 关键字等方面。

Linq数据分组(GROUP BY)

根据元素的一个或多个字段对查询结果中的元素进行分组。例如:按年级 (class year) 对学生进行Linq数据分组:

  1. Dim studentsByYear = From student In students _  
  2. Select student _  
  3. Group By year = student.Year _  
  4. Into Classes = Group 

输出结果的程序:

  1. For Each yearGroup In studentsByYear  
  2. Console.WriteLine(vbCrLf & "Year: " & yearGroup.year)  
  3. For Each student In yearGroup.Classes  
  4. Console.WriteLine(" " & student.Last & ", " & student.First)  
  5. Next  
  6. Next 

完整语法:

  1. Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]  
  2. Into aggregateList 

◆listField1, listField2 :可选。查询变量的一个或多个字段,这些查询变量显式标识要包括在分组结果中的字段。如果未指定任何字段,则查询变量的所有字段都包括在分组结果中。

◆keyExp1 :必需。一个表达式,标识用于确定元素的分组的键。可以指定多个键来指定一个组合键。

◆keyExp2 :可选。一个或多个附加键,与 keyExp1 组合在一起,创建一个组合键。

◆aggregateList :必需。一个或多个表达式,标识如何对组进行聚合。若要为分组结果标识一个成员名称,请使用 Group 关键字,该关键字可以:Into Group

Linq数据分组例如:

  1. Dim ***层_分组 = From cust In db.Customers _  
  2. Group By 国家 = cust.Country _  
  3. Into 第二层_分组元素 = Group, Count() _  
  4. Order By 国家  
  5.  
  6. For Each A分组 In ***层_分组  
  7. Console.WriteLine(A分组.国家 & "(" & A分组.Count & ")")  
  8.  
  9. For Each A元素 In A分组.第二层_分组元素  
  10. Console.WriteLine(vbTab + A元素.CompanyName + "," + A元素.ContactName)  
  11. Next  
  12. Next 

【编辑推荐】

  1. Linq表达式树简单介绍
  2. Linq和dLinq区别剖析
  3. Lambda表达式和Linq查询浅析
  4. Linq Lambda表达式概括
  5. Linq查询本质简单分析
责任编辑:佚名 来源: IT168
相关推荐

2009-09-18 13:53:09

LINQ工具集

2009-09-09 15:37:27

Linq DataLo

2009-09-08 11:09:39

LINQ数据源

2009-09-09 11:24:13

Linq使用数据表

2009-09-15 10:02:44

Linq to SQL

2009-09-09 13:07:37

创建Linq数据库

2009-09-09 15:28:43

Linq to obj

2009-09-15 16:26:36

Linq orderb

2009-09-18 16:00:07

LINQ架构

2009-09-10 15:26:03

Linq City集合

2009-09-14 10:57:46

LINQ入门

2009-09-10 10:37:15

LINQ to SQL

2009-09-16 09:38:27

LINQ To SQL

2009-09-14 15:43:12

Linq Settin

2009-09-16 17:21:53

LINQ遍历

2009-09-09 14:40:43

Linq to sql

2009-09-11 12:13:40

LINQ to SQL

2009-09-09 11:14:04

Linq多个结果集

2009-09-10 09:09:40

Linq实体继承

2009-09-14 14:58:52

LINQ to XML
点赞
收藏

51CTO技术栈公众号