C#Datatable组,选择并求和

时间:2019-03-29 14:15:37

标签: c# linq select sum

我有一个看起来像这样的数据表

enter image description here

填充数据表后,我将使用以下代码按名称和总和分组。

    var result = from tab in dtTemp.AsEnumerable()
                         group tab by tab["Name"]
                         into groupDt
                         select new
                         {
                             Agent = groupDt.Key,
                             Commision = groupDt.Sum((r) => decimal.Parse(r["Amount"].ToString()))

                         };

这给了我这个结果,但事实是我缺少FixedSalary列。但是,好像我只能像对Commision = groupDt.Sum((r) => decimal.Parse(r["Amount"].ToString()))那样对列数据进行求和,才能访问列数据-而且我不想对列进行求和。

enter image description here

预先感谢

1 个答案:

答案 0 :(得分:3)

如果“姓名”的固定薪资始终相同,则可以使用:

var result = from tab in dtTemp.AsEnumerable()
                     group tab by tab["Name"]
                     into groupDt
                     select new
                     {
                         Agent = groupDt.Key,
                         Commision = groupDt.Sum((r) => decimal.Parse(r["Amount"].ToString())),
                         FixedSalary = groupDt.Select(r => r["FixedSalary"].ToString()).FirstOrDeafult()
                     };

如果可以更改,则应将其与名称列分组。