c# LINQ GroupBy C1然后再GroupBy C2,最后再GroupBy C3
时间: 2024-03-03 22:50:33 浏览: 167
你的问题是如何使用 C# LINQ 进行三级分组(GroupBy)。
你可以使用以下代码完成这个任务:
```csharp
var result = items.GroupBy(c => c.C1)
.Select(g1 => new {
C1 = g1.Key,
C2Groups = g1.GroupBy(c => c.C2)
.Select(g2 => new {
C2 = g2.Key,
C3Groups = g2.GroupBy(c => c.C3)
.Select(g3 => new {
C3 = g3.Key,
Items = g3.ToList()
})
})
});
```
这个代码将会首先按照 `C1` 进行第一次分组,然后对每个分组按照 `C2` 进行第二次分组,最后对每个 `C2` 分组按照 `C3` 进行第三次分组。
最终的结果是一个嵌套的匿名对象,包含了每个 `C1` 分组及其下面的所有 `C2` 分组和 `C3` 分组。在每个 `C3` 分组中,还有一个 `Items` 属性,包含了所有符合条件的项的列表。
阅读全文