So erstellen Sie Group-By dynamisch für eine Liste von Wörterbüchern

Ich versuche, ein groupby auf einem IEnumerable durchzuführen. Das Problem ist, dass ich zur Kompilierungszeit nicht weiß, welche Felder ich gruppieren möchte. ich habe gefundenein anderer Beitrag on stack, der erklärt, wie man das macht, wenn die Klasse bekannt ist und Eigenschaften hat, aber in meinem Fall beschäftige ich mich mit einem Wörterbuch und die Schlüssel sind auch nur zur Laufzeit bekannt.

Mein Code würde ungefähr so ​​aussehen (ich weiß, dass dies nicht kompiliert ...):

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]]) });
}  

Irgendwelche Ideen? Ich habe angefangen, mich mit Dynamic LINQ zu beschäftigen, stecke aber fest (weil ich keine Eigenschaften sondern eine Key / Value-Auflistung verwende) ...

Danke an alle!!

Sean

Antworten auf die Frage(2)

Ihre Antwort auf die Frage