具有动态 LINQ 的 DataTable 聚合函数

问题描述 投票:0回答:0

我有一个带有以下函数的旧项目,它在 Linq 中返回一个带有聚合函数的数据表。

现在我的目标是使用聚合函数和动态 linq 从 json 文件获取值。 我看到过关于使用动态 linq 的不同线程,但对它们有足够的混淆。 我正在使用 vb.net 或 c#。

Json 文件提供列名、列类型、聚合类型等信息

我不一定必须使用 LINQ,我们也可以选择其他解决方案。

Private Function GetTotalByIST_Dynamic(dt As DataTable) As DataTable

    Dim table2 = New DataTable()

    For Each col As DataColumn In dt.Columns
        table2.Columns.Add(col.ColumnName, col.DataType)
    Next

    Dim query = From dr In dt.AsEnumerable()
              Group dr By FieldGroup = dr.Field(Of String)("MyField") Into drg = Group
              Select New With {
                    .MyField= FieldGroup ,
                    .FIELD_TOTAL_UDP = drg.Sum(Function(dr) LongOrNull(dr.Field(Of String)("FIELD_TOTAL_UDP "))),
                    .FIELD2_TOTAL_UDP = drg.Sum(Function(dr) LongOrNull(dr.Field(Of String)("FIELD2_TOTAL_UDP ")))
                   }

   For Each grp In query
        Dim newRow = table2.Rows.Add()
        newRow.SetField("MyField", grp.MyField)
        newRow.SetField("FIELD_TOTAL_UDP", grp.FIELD_TOTAL_UDP)
        newRow.SetField("FIELD2_TOTAL_UDP", grp.FIELD2_TOTAL_UDP)
    Next

    Return table2
c# .net vb.net linq datatable
© www.soinside.com 2019 - 2024. All rights reserved.