我一直在努力解决这个问题一段时间,并想知道我是否可以得到一些帮助。来自Datatable for Pivot Table的动态Linq查询
我有以下项目:
Datatable inputdata = //Data from large scale SQL query
var rowvals = (from x in reportattrs.AsEnumerable()
where x.Field<long>("COLFORREPORT") == 0 && x.Field<long>("VALUEFIELD") == 0
orderby x.Field<long>("ORDERDISPLAY")
select new { Name = x.Field<object>("FIELDNAME") });
var colvals = (from x in reportattrs.AsEnumerable()
where x.Field<long>("COLFORREPORT") == 1 && x.Field<long>("VALUEFIELD") == 0
orderby x.Field<long>("ORDERDISPLAY")
select new { Name = x.Field<object>("FIELDNAME") });
var datavals = (from x in reportattrs.AsEnumerable()
where x.Field<long>("COLFORREPORT") == 1 && x.Field<long>("VALUEFIELD") == 1
orderby x.Field<long>("ORDERDISPLAY")
select new { Name = x.Field<object>("FIELDNAME") });
Rowvals是我们要筛选行,colvals是透视表中的列值的表的属性,datavals是数据总结
我想要做的是创建我自己的自定义数据透视表例程,它允许我用更复杂的方法过滤和分层。
我能得到一个行的具体不同的值:
foreach(object val in rowvals){
var distinctValues = dsValues.AsEnumerable()
.Select(row => new {
attribute1_name = row.Field<string>(val)
})
.Distinct();
}
我怎样才能筛选出在组合中的每个值(可变数目行列数),对我来说很难。不仅如此,我需要为每个值列选择所有值,以便我可以将其合并。
任何帮助都会很大!
感谢 乔恩
因此,我创建了一组手动检查表并执行聚合递归字典函数的函数,但是我想看看是否可以将此过程进行linq化。我不知道递归函数是否有用 - 我应该添加它吗? – Jon