У меня есть,Multi-Group Column Count Linq
Список, MyList
, объектов с полями:
string A;
string B;
Концептуально, это похоже на два столбца SQL таблицы со столбцами A, B.
Я пытаюсь создать выражение Linq, который будет производить три столбца результирующего набора этого T-SQL на такой концептуальной таблицы:
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 для каждой группы столбцов. Как это можно зафиксировать?
Главное, чтобы отметить, что вы на самом деле не считая B, вы просто считаете (например, в SQL 'count (1)' будет работать так же хорошо). Вот почему ваш ответ интуитивно не работает. У NinjaNye есть решение, прибитое, хотя кажется. :) – Chris