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]]) });
}
何か案は?Dynamic LINQの調査を開始しましたが、スタックしています(プロパティではなく、キー/値コレクションを使用しているため)...
みなさん、ありがとう!
ショーン