动态LINQ GroupBy问题

时间:2011-03-20 18:52:56

标签: c# visual-studio linq dynamic-linq

我正在使用VS2010代码示例中的Dyanmic LINQ,因为我正在尝试创建一个LINQ groupby表达式。 我希望允许用户在运行时选择要分组的属性以及分组的时间段(年,季度,月)。因此,我决定选择Dynamic LINQ。

以下是我的数据示例:

ID |收入| OrDate |
1 | 900000 | 1-1-2000 |
2 | 180000 | 1-9-2000 |
3 | 300000 | 3-2-2002 |
4 | 100000 | 2-7-2003 |

,我构建的表达式如下:

dataSource.GroupBy("new (OrDate.Year as Year, OrDate as Month)", "Income").Select("new (Key.Year, Key.Month, Sum(Value) as Income)");

这很有效我只知道列表的确切类型;例如:List<Product>List<Order>。我的问题是编译时的dataSource类型是List<object>。因此,每当我用订单或产品填充列表时,我都会遇到异常:

No generic method 'GroupBy' on type 'System.Linq.Queryable' is compatible with the supplied type arguments and arguments. No type arguments should be provided if the method is non-generic.

有谁能告诉我如何避免这种情况并将源列表保持为List<object>

1 个答案:

答案 0 :(得分:0)

试试这个 -

For group by in LinQ

var x = t.GroupBy(gp => gp.Name).OrderBy(group => group.Key).Select(group => Tuple.Create(group.Key, group.Count()));

请找

https://dotnetfiddle.net/WPqzhJ