【发布时间】:2021-10-20 09:09:40
【问题描述】:
我正在尝试使用 Linq 按多个键进行分组。
我有一个 Category Id 和一个与之关联的 Type Id,然后是一个与 Type Id 关联的项目列表。
从我的结果中可以看出,它们没有被分组。
这是我正在使用的查询:
Dim uploads = items.GroupBy(Function(g) New With {g.CategoryId, g.TypeId}) _
.OrderBy(Function(g) g.Key.CategoryId) _
.ThenBy(Function(g) g.Key.TypeId) _
.Select(Function(g) New UploadListItemViewModel With {
.CategoryId = g.Key.CategoryId,
.TypeId = g.Key.TypeId,
.Uploads = g.ToList()
})
这是结果视图
例如对于 Category 1 / Type 8 ,上传计数应为 3
如果我做错了什么,我们将不胜感激。
【问题讨论】:
-
Key .Uploads是错字吗? -
为什么是错字?是不是因为某种原因错了?
-
您在组选择器 (
New With {Key g.CategoryId, Key g.TypeId})) 中缺少Key关键字。没有它,分组就无法工作。我假设Uploads是一个整数,所以你应该在那里有.Uploads = g.Sum(Function(m) m.Uploads)。否则,发布类模型。 -
@Jimi 我刚刚发现我也缺少来自另一个来源的
Key关键字。我把它放进去就可以了。谢谢你也确认了这一点。