【问题标题】:Groupby using dynamic linqGroupby 使用动态 linq
【发布时间】:2013-10-21 14:06:13
【问题描述】:

谁能帮我完成这项工作?

我有以下代码:

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)");

当我执行这段代码时,我得到了错误:

“DataRow”类型中不存在属性或字段“NR”

我需要结果为:

A, 990001, 220
B, 990001, 500

【问题讨论】:

    标签: c# linq select dynamic group-by


    【解决方案1】:
    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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 2013-12-18
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      相关资源
      最近更新 更多