c# datatable group by sum multiple columns

您可以使用 LINQ 查询来对 DataTable 进行分组求和操作。

以下是一个示例代码:

var dt = new DataTable();
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Sales", typeof(int));
dt.Columns.Add("Expenses", typeof(int));
dt.Columns.Add("Profit", typeof(int));
dt.Rows.Add("Category1", 100, 50, 50);
dt.Rows.Add("Category2", 200, 100, 100);
dt.Rows.Add("Category1", 150, 75, 75);
dt.Rows.Add("Category2", 250, 125, 125);
var result = from row in dt.AsEnumerable()
             group row by row.Field<string>("Category") into g
             select new
                 Category = g.Key,
                 SalesTotal = g.Sum(x => x.Field<int>("Sales")),
                 ExpensesTotal = g.Sum(x => x.Field<int>("Expenses")),
                 ProfitTotal = g.Sum(x => x.Field<int>("Profit"))

上面的代码中,我们先创建了一个 DataTable,并且向其中添加了一些数据。接下来,使用 LINQ 查询对 DataTable 进行分组求和操作,将每个分类的销售总额、支出总额和利润总额计算出来,并保存在一个匿名类型的对象中。在 select 子句中,我们通过 g.Key 来获取分组的键(即分类),并使用 g.Sum() 方法对 Sales、Expenses 和 Profit 列进行求和。

希望这个示例能够帮助您进行 DataTable 的分组求和操作。

  •