我有一个Datatable结果。我想用一些字段分组,可能是一个、两个或三个。主要的事实是开发人员无法知道客户端想要分组的字段数。因此,对于这种情况,我找到了一些关于将List参数放入group by字段的解决方案。但是还没有找到合适的。有人能帮我吗?我被这个问题困了三天。
cyvaqqii1#
使用反射对DB行进行动态分组:
//something like: var props = typeof(Foo).GetProperties().Where( x=> x.Name.Equals("MyField"); var result = rows.GroupBy( x => prop.GetValue( x ) );
对于多个字段,循环遍历它们并将GroupBy应用于最后一次迭代的结果。
wrrgggsh2#
我是通过使用动态LinQ中的groupby得到的。
var qfields = string.Join(",", stringarray.Select(x => "it[\"" + x + "\"] as " + x)); var collVal = datatableresult.AsQueryable() .GroupBy("new (" + qfields + ")", "it") .Select("new (it.Key as Key,it as Data)");
这段代码成功地通过了数据表分组,但我仍然需要对多个列进行排序。
2条答案
按热度按时间cyvaqqii1#
使用反射对DB行进行动态分组:
对于多个字段,循环遍历它们并将GroupBy应用于最后一次迭代的结果。
wrrgggsh2#
我是通过使用动态LinQ中的groupby得到的。
这段代码成功地通过了数据表分组,但我仍然需要对多个列进行排序。