ho,Multi-Gruppo Colonna Conte Linq
Un elenco, MyList
, di oggetti con campi:
string A;
string B;
Concettualmente, questo è simile a una tabella SQL a due colonne con le colonne A, B.
sto cercando di creare un'espressione LINQ che avrebbe prodotto i tre colonna dei risultati insieme di questo T-SQL su un tavolo come concettuale:
SELECT A, B, COUNT(B)
FROM T1
GROUP BY A, B
Cioè, se ho avuto una tabella come:
A B
----------
x g
x g
x g
x s
y g
y g
mi aspetterei:
A B COUNT(B)
-------------------------
x g 3
x s 1
y g 2
miei migliori sforzi sono stati questo:
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() }
Ma il conteggio sembra restituire il numero totale di B non il numero di B per gruppo di colonne multiple. Come si puo aggiustare?
La cosa fondamentale da notare è che non siete veramente contando B, stai solo contando (ad esempio nel conteggio di SQL (1) 'funzionerebbe altrettanto bene). Questo è il motivo per cui la tua risposta intuitivamente non funziona. NinjaNye ha la soluzione inchiodata anche se sembra. :) – Chris