私は持っている、
MyList
フィールドを持つオブジェクトのリスト:
string A;
string B;
概念的には、これは列 A、B を持つ 2 列の SQL テーブルに似ています。
このような概念的なテーブルで、この T-SQL の 3 つの列の結果セットを生成する linq 式を作成しようとしています。
SELECT A, B, COUNT(B)
FROM T1
GROUP BY A, B
つまり、次のようなテーブルがあるとします。
A B
----------
x g
x g
x g
x s
y g
y g
私は期待します:
A B COUNT(B)
-------------------------
x g 3
x s 1
y g 2
私の最善の努力はこれでした:
var result = from MyObjs in MyList
group MyObjs by new { MyObjs.A, MyObjs.B } into g
select new { g.Key.A, g.Key.B, g.Key.B.Count() }
ただし、カウントは、複数の列グループごとの B の数ではなく、B の総数を返すように見えます。これはどのように修正できますか?