我有一个带有以下函数的旧项目,它在 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