我已经看到了很多方法让动态LINQ为.GroupBy
工作,但我看到的每一个似乎都期望一个硬编码实体。我想重现以下动态LINQ:在DataTable上使用动态LINQ for GroupBy
//need dynamic LINQ for this
var groupedRows = rows.GroupBy(z => new { make = z["make"], model = z["model"] })
.Select(x => x.Key);
我想能够只是做到这一点,使得整个函数的字符串:
var groupedRows = rows.GroupBy(z => "new { make = z[\"make\"], model = z[\"model\"] }")
我意识到,如果我只希望一个普通的实体,我能做到这一点
mylist.GroupBy(z => new { make = z.make, model = z.model }).Select(x => x.Key);
如果我有正规的实体,我可以用Mitsu's dynamic GroupByMany。
我想让这与常规数据表(不强类型)工作。有任何想法吗?
我绝对可以用反射解决方案。这显然是表现的问题,这取决于需要多少。如果每一行的每一列都需要它,我会怀疑这会是一个问题。如果只是一次,没问题。我相信我们会达到500行左右的最大值。 – DougJones 2010-11-09 00:23:05
你可以给我一个'行'的示例实例吗?它只是一堆类似的物体吗? – BeemerGuy 2010-11-09 00:31:48
这是一个数据表。 <%DataTable dt = GetData(); var rows = dt.AsEnumerable(); %> – DougJones 2010-11-09 00:46:07