我已經看到了很多方法讓動態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