いくつかの同様のサウンドポストがありますが、まったく同じものはありません。Linqを使って動的にGroupByを作成する方法
わかりましたので、「データ」の特性のために私は(このLinqPad例のために簡略化)次のようなデータ構造
public class Row
{
public List<string> Columns { get; set; }
}
public List<Row> Data
=> new List<Row>
{
new Row { Columns = new List<string>{ "A","C","Field3"}},
new Row { Columns = new List<string>{ "A","D","Field3"}},
new Row { Columns = new List<string>{ "A","C","Field3"}},
new Row { Columns = new List<string>{ "B","D","Field3"}},
new Row { Columns = new List<string>{ "B","C","Field3"}},
new Row { Columns = new List<string>{ "B","D","Field3"}},
};
を持っていることを想像し、ユーザーが列GROUPBYに序を私に教えてくれます。彼らは「何でもグループ化しない」と言うかもしれないし、「Column [1] by group [0] と Column [1]」と言うかもしれない。
私は単一の列でグループ化したい場合は、私が使用することができます。
var groups = Data.GroupBy(d => d.Columns[i]);
をそして、私は2列でグループ化したい場合は、私が使用することができます。
var groups = Data.GroupBy(d => new { A = d.Columns[i1], B = d.Columns[i2] });
しかし、数列の数は可変である(ゼロ - >多数)。データには数百の列が含まれ、ユーザーはGroupByに数十の列を追加することができます。
実行時に(動的に)このGroupByを作成するにはどうすればいいですか?
おかげ
グリフ
何らかの形でラムダ式を作成することができます[動的OrderByについての非常によく似た質問に対するこの回答](http://stackoverflow.com/a/233505/424129)。 –