我有一个表(从SQL数据库中检索的数据)的形式:
╔═══════╦══════════════╗
║ Model ║ Manufacturer ║
╠═══════╬══════════════╣
║ A ║ 1 ║
║----------------------║
║ A ║ 2 ║
║----------------------║
║ A ║ 3 ║
║----------------------║
║ B ║ 4 ║
║----------------------║
║ B ║ 5 ║
║----------------------║
║ C ║ 6 ║
║----------------------║
║ D ║ 7 ║
║----------------------║
║ D ║ 8 ║
║----------------------║
║ D ║ 9 ║
║----------------------║
║ D ║ 10 ║
╚═══════╩══════════════╝
每行都是它自己的< tr>当我将数据绑定到< asp:datagrid>时.但我需要的是:
╔═══════╦══════════════╗
║ Model ║ Manufacturer ║
╠═══════╬══════════════╣
║ A ║ 1 ║
║ ║ 2 ║
║ ║ 3 ║
║----------------------║
║ B ║ 4 ║
║ ║ 5 ║
║----------------------║
║ C ║ 6 ║
║----------------------║
║ D ║ 7 ║
║ ║ 8 ║
║ ║ 9 ║
║ ║ 10 ║
╚═══════╩══════════════╝
我花了很多时间搜索并尝试了很多不同的东西,其中大部分使用LINQ.但是我对LINQ的了解和理解很少.我想(但我可能完全错了),我最接近的是这个问题/答案:Linq query to combine cell results?.我稍微修改过的版本是:
Dim results = table.AsEnumerable().GroupBy(Function(x) x.Field(Of String)("Model")).[Select](Function(grouping) New With {
.Key = grouping.Key,
.CombinedModel = grouping.Aggregate(Function(a, b) a + " " + b)
}).[Select](Function(x) New ModelRecord() With {
.Manufacturer = x.Key.Manufacturer,
.Model = x.CombinedModel
})
但由于我缺乏LINQ知识,我不理解“定义表示Row的具体类型”(这在我的代码中创建了ModelRecord()的问题).
在这一点上,我几乎完全迷失了.我是不是太复杂了?完全错了吗?这里的任何帮助都将非常感激.
最佳答案 我在评论中提到的
This solution对你的问题有效.谢谢你试一试.