相关疑难解决方法(0)

GroupBy将多个组作为层次结构

我正在使用GroupBy创建一组用于多个子网格的分层组.

假设我有一个包含6列的查询,a,b,c,d,e,f.

现在,我需要按a分组,然后按b分组,然后按c分组.并返回c组中的整行.

var q = rows.GroupBy(x => x.a)
Run Code Online (Sandbox Code Playgroud)

好的,那很好.那给了我我的小组.接下来,我们希望用a和b对它们进行分组.

var q1 = q.Select(g =>new {
    Key = g.Key,
    SubGroup = g.GroupBy(x => x.b)
}
Run Code Online (Sandbox Code Playgroud)

好的,这也很好用.我得到了一组带有b子组的a组.

现在我被困在第三级了.我尝试了各种语法,但大多数都不会编译.那些没有给出正确结果的.

var q2 = q1.Select(g1 => new {
    Key = g1.Key,
    SubGroup = g1.GroupBy(x => x.c)
}
Run Code Online (Sandbox Code Playgroud)

这不编译.告诉我g1上没有GroupBy.

var q2 = q.Select(g1 => new {
    Key = g1.Key,
    SubGroup = g1.GroupBy(x => x.c)
}
Run Code Online (Sandbox Code Playgroud)

这不给我b子组,只给出a和c.

知道我在这里做错了什么吗?

编辑:

以下也没有用,说没有g1.​​Key的定义

var q2 = q.Select(g => new {
    Key = g.Key,
    SubGroup = g.Select(g1 => new { …
Run Code Online (Sandbox Code Playgroud)

c# linq group-by

4
推荐指数
2
解决办法
4171
查看次数

标签 统计

c# ×1

group-by ×1

linq ×1