[英]LINQ Nested group syntax
MSDN在解释LINQ中的嵌套组方面做得非常糟糕: https : //docs.microsoft.com/zh-cn/dotnet/csharp/linq/create-a-nested-group
举个例子:
IEnumerable<IGrouping<Gender, IGrouping<Job, Person>>> query =
from person in peopleList
group person by person.Gender into genderGroup
from jobGroup (
from person in genderGroup
group person by person.Job
)
group jobGroup by genderGroup.Key;
我的问题:
from person in genderGroup
group person by person.Job
此子查询会重复搜索相同性别的人,因此将其按工作分组,然后按工作分组,依次类推。 如果使用peopleList
而不是genderGroup
,则查询将按作业对学生进行分组,并且不会有嵌套的分组。
group jobGroup by genderGroup.Key;
这将内部群体而不是通过外部群体的关键(性别)进行人员分组。 假设有四个工作jobGroup
:男程序员,男设计师,女程序员和女设计师。 该查询按性别对这四个组进行分组,从而产生一个嵌套组:
male (outer group's key)
male programmers
male designers
female (outer group's key)
female programmers
female designers
为了更好地理解,建议您在Visual Studio中运行此小代码,并在LINQ语句中设置断点以查看会发生什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.