读书人

百分 Linq查询 DataTable 分组 多列求

发布时间: 2012-03-04 11:13:33 作者: rapoo

百分求助 Linq查询 DataTable 分组 多列求和
DataTable例子如下:(当然数据远不止这些)

Name a b c d e f g
卡卡 2 1 4 5 6 7 9
梅西 2 4 1 5 6 7 9
保罗 7 6 3 5 6 7 9
卡卡 9 3 5 5 6 7 9
梅西 6 7 4 5 6 7 9
保罗 8 9 8 5 6 7 9

我现在想用 linq 实现 按 Name分组 在把后面的列值求和
实现效果如下:

Name a b c d e f g 当然 b c d e f g 列均需要求和
卡卡 a列Name为卡卡的和 1 4 5 6 7 9
梅西 a列Name为卡卡的和 4 1 5 6 7 9
保罗 a列Name为卡卡的和 6 3 5 6 7 9

希望问题已经表速明白,麻烦大侠给解答下,谢谢

[解决办法]

C# code
var Query=from t in table    group t by t.name    select new{name=g.key,a=g.sum(v=>v.a),b=g.sum(v=>v.b),.....}
[解决办法]
var re = from t in datatable
group t by new {t.a,
t.b,
t.c,
t.d} into g
select new {g.key,
e=g.Sum(k => k.a)};

[解决办法]
var table = from t in _dt3.AsEnumerable()
group t by t.Field<string>("Name0") into s
select new
{
Name0 = s.Key,
Name1 = s.Sum(v => v.Field<string>("Name1")),
Name2 = s.Sum(v => v.Field<string>("Name2")),
Name3 = s.Sum(v => v.Field<string>("Name3")),
Name4 = s.Sum(v => v.Field<string>("Name4")),
Name5 = s.Sum(v => v.Field<string>("Name5")),
Name6 = s.Sum(v => v.Field<string>("Name6")),
Name7 = s.Sum(v => v.Field<string>("Name7"))
};

读书人网 >.NET

热点推荐