I am trying to perform a groupby on an IEnumerable. The problem is that I do not know at compile-time which fields i want to groupby. I have found another post on stack that explains how to do this when the class is known and has properties, but in my case i am dealing with a dictionary and the keys are also only known at run-time.
My code would resemble something like this (i know this doesn't compile...):
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]]) });
}
Any ideas? I've started looking into Dynamic LINQ but am stuck (because I am not using properties but a Key/Value collection)...
Thanks everybody!!
Sean