在数据表上求和

时间:2014-04-13 10:20:30

标签: c# datatable

我有DTgraph数据表,我想对Campaign列上的行进行分组,并对Inb.ServiceLevel列进行求和。

我试过了:

var result = from row in DTgraph.AsEnumerable()
             group row by row.Field<string>("Campaign") into grp
             select new
             {
                 TeamID = grp.Key,
                 MemberCount = grp.Count(),
                 s = grp.Sum(s => s."Inb.ServiceLevel")
             };

everthing工作正常,但代码中的最后一行是s = grp.Sum(s => s."Inb.ServiceLevel"),它给我编译错误。

我应该怎么做才能得到这笔款项?

修改

complie错误是Identifier expected。它显示在Ibn.ServiceLevel

2 个答案:

答案 0 :(得分:1)

使用Field代替,我假设In.Service Level的类型为int

var result = from row in DTgraph.AsEnumerable()
                     group row by row.Field<string>("Campaign") into grp
                     select new
                     {
                         TeamID = grp.Key,
                         MemberCount = grp.Count(),
                         s = grp.Sum(s => s.Field<int>("Inb.ServiceLevel"))
                     };

答案 1 :(得分:1)

试试这个:

s = grp.Sum(s => float.Parse(s.Field<string>("Inb.ServiceLevel")))

但是使用浮动可能会失去精确度。 为确保转化率不降,您可以使用float.TryParse'