使用动态 linq 进行分组
本文关键字:linq 动态 | 更新日期: 2023-09-27 18:36:25
谁能帮我完成这项工作?
我有以下代码:
dt.Columns.Add("Field1", typeof(String));
dt.Columns.Add("Field2", typeof(String));
dt.Columns.Add("NR", typeof(Double));
dt.Rows.Add("A", "990001", 100);
dt.Rows.Add("A", "990001", 120);
dt.Rows.Add("B", "990001", 200);
dt.Rows.Add("B", "990001", 300);
var fields = new List<string>() { "Field1", "Field2" };
var q = dt.AsEnumerable().AsQueryable()
.GroupBy("new(" + qfields + ")", "it")
.Select("new(Key as Group, Sum(NR) as Tot)");
当我执行此代码时,出现错误:
类型"数据行"中不存在属性或字段"NR"
我需要的结果为:
A, 990001, 220
B, 990001, 500
var q =
dt.AsEnumerable()
.AsQueryable()
.GroupBy("new(it['"Field1'"] as Field1,it['"Field2'"]as Field2)", "it")
.Select("new(Key as Group, Sum(double(it['"NR'"])) as Tot)");
foreach (var v in q)
{
Console.WriteLine(v);
}