vb.net datatable linq group by sum

如果你需要在 VB.NET 中使用 DataTable 和 LINQ 对其进行分组并求和,可以使用以下代码:

' 假设你有一个 DataTable 名称为 table,其中有两列,分别为 Category 和 Value。
' 你希望按照 Category 列分组,并且计算每组的 Value 列总和。
Dim query = From row In table.AsEnumerable() _
            Group By category = row.Field(Of String)("Category") Into Group _
            Select Category, Sum = Group.Sum(Function(row) row.Field(Of Decimal)("Value"))
' 上述代码首先使用 AsEnumerable 方法将 DataTable 转换为可枚举的集合。
' 然后使用 Group By 子句将集合按照 Category 列分组,并创建一个新的匿名类型,包含 Category 和 Group 属性。
' 最后使用 Select 子句计算每个组的 Value 列总和,并将结果保存在一个新的匿名类型中,包含 Category 和 Sum 属性。
' 可以将查询结果存储在一个新的 DataTable 中:
Dim resultTable As New DataTable
resultTable.Columns.Add("Category", GetType(String))
resultTable.Columns.Add("Sum", GetType(Decimal))
For Each item In query
    Dim newRow = resultTable.Rows.Add()
    newRow("Category") = item.Category
    newRow("Sum") = item.Sum

上述代码将返回一个包含每个 Category 和 Sum 的 DataTable。你可以根据需要修改查询中的列名和类型,以适应你的数据。

  •