我正在尝试在 IEnumerable 上执行 groupby。问题是我在编译时不知道我想对哪些字段进行分组。我在堆栈上找到了另一篇文章,解释了当类已知并具有属性时如何执行此操作,但在我的情况下,我正在处理字典并且键也仅在运行时才知道。
我的代码将类似于这样(我知道这不会编译......):
private object GetValuesGroupedBy(List<string> groupbyNames, List<string> summableNames)
{
// get the list of items in the grid
var listOfDicos = grid.AllItems;
return listOfDicos
.GroupBy(x => new { x[groupbyNames[0]],
x[groupbyNames[1]],
x[groupbyNames[2]] })
.Select(group => new { group.Key,
group.Sum(x => x[summableNames[0]]),
group.Sum(x => x[summableNames[1]]) });
}
有任何想法吗?我已经开始研究动态 LINQ,但被卡住了(因为我没有使用属性,而是使用键/值集合)......
谢谢大家!!
肖恩