本篇内容主要讲解“Linq数据分组怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linq数据分组怎么使用”吧!
Linq数据分组(GROUP BY)
根据元素的一个或多个字段对查询结果中的元素进行分组。例如:按年级 (class year) 对学生进行Linq数据分组:
Dim studentsByYear = From student In students _ Select student _ Group By year = student.Year _ Into Classes = Group
输出结果的程序:
For Each yearGroup In studentsByYear Console.WriteLine(vbCrLf & "Year: " & yearGroup.year) For Each student In yearGroup.Classes Console.WriteLine(" " & student.Last & ", " & student.First) Next Next
完整语法:
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ] Into aggregateList
◆listField1, listField2 :可选。查询变量的一个或多个字段,这些查询变量显式标识要包括在分组结果中的字段。如果未指定任何字段,则查询变量的所有字段都包括在分组结果中。
◆keyExp1 :必需。一个表达式,标识用于确定元素的分组的键。可以指定多个键来指定一个组合键。
◆keyExp2 :可选。一个或多个附加键,与 keyExp1 组合在一起,创建一个组合键。
◆aggregateList :必需。一个或多个表达式,标识如何对组进行聚合。若要为分组结果标识一个成员名称,请使用 Group 关键字,该关键字可以:Into Group
Linq数据分组例如:
Dim ***层_分组 = From cust In db.Customers _ Group By 国家 = cust.Country _ Into 第二层_分组元素 = Group, Count() _ Order By 国家 For Each A分组 In ***层_分组 Console.WriteLine(A分组.国家 & "(" & A分组.Count & ")") For Each A元素 In A分组.第二层_分组元素 Console.WriteLine(vbTab + A元素.CompanyName + "," + A元素.ContactName) Next Next
到此,相信大家对“Linq数据分组怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!