我有一个需要动态的查询,我认为我的大多数语法都是正确的,但是我不知道如何给它命名我要分组的列的名称。我尝试了几种不同的方法,但总是遇到错误-“类型'datarow'中不存在属性或字段'名称'
IQueryable<Result> aggregate1 =
query1Data.Tables[0].AsEnumerable().AsQueryable()
.GroupBy("name", "it")
.Select<Result>("new(Key as Group, Sum(value)as Total)");
我假设我必须使用Field<string>("name")
但我无法弄清楚。我已经在几个论坛上看到了这个问题,但是似乎没有一个明确的答案来解决这个问题。
我不确定我是否确切了解您想要什么,但是这里有一些代码片段可以用作启发:
var dataTable = new DataTable();
dataTable.Columns.Add("Name", typeof(String));
dataTable.Columns.Add("Value", typeof(Int32));
dataTable.Rows.Add("A", 1);
dataTable.Rows.Add("A", 2);
dataTable.Rows.Add("B", 3);
dataTable.Rows.Add("B", 4);
var aggregate = dataTable.AsEnumerable()
.GroupBy(row => row.Field<String>("Name"), row => dataRow.Field<Int32>("Value"))
.Select(group => new { Name = group.Key, Total = group.Sum() });
foreach (var row in aggregate)
Console.WriteLine(row.Name + " = " + row.Total);