У меня есть
Список, 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() }
Но число count, как представляется, возвращает общее число B, а не число B для нескольких групп столбцов. Как это можно зафиксировать?