大家好我所有的结果如下
ID Name Price
1 XYZ 10
2 ABC 10
1 ABC 20
我想执行分组,以便它应该给我
ID Name Price
1 XYZ 10
ABC 20
2 ABC 10
我尝试使用解决方案形成链接,但我无法得到DataTable linq query to group by a column可以有人帮助我
答案 0 :(得分:2)
你可以做一些像这个简单的事情
context.Table.GroupBy(t => t.ID);
这将返回此类IQueryable<IGrouping<int, YourClass>>
的某些内容(假设您的ID为int)
每个条目都有一个密钥(在这种情况下为ID)和一个枚举器,因此您可以浏览所有分组的记录
答案 1 :(得分:2)
除非您想要更改原始对象,否则您将不得不投影到 new 集合并删除重复的ID值。类似的东西:
var query =
data.GroupBy(d => d.ID)
.OrderBy(g => g.Key)
.SelectMany(g => (new[] {new {
g.First().ID,
g.First().Name,
g.First().Price}})
.Concat(g.Skip(1).Select(i => new {
ID = (string)null,
i.Name,
i.Price})));
基本上: