Jest to dość proste, ale jestem zagubiony: Biorąc pod uwagę ten typ zestawu danych:
UserInfo(name, metric, day, other_metric)
i ten przykładowy zestaw danych:
joe 1 01/01/2011 5
jane 0 01/02/2011 9
john 2 01/03/2011 0
jim 3 01/04/2011 1
jean 1 01/05/2011 3
jill 2 01/06/2011 5
jeb 0 01/07/2011 3
jenn 0 01/08/2011 7
Chciałbym pobrać tabelę, która zawiera listę metryk w kolejności (0,1,2,3 ..) z całkowitą liczbą wystąpień. Więc z tego zestawu skończyłbyś:
0 3
1 2
2 2
3 1
Zmagam się ze składnią LINQ, ale utknąłem na tym, gdzie umieścić groupby i liczyć .... jakiejkolwiek pomocy?
Edycja POST: Nigdy nie udało mi się sprawić, by opublikowane odpowiedzi zadziałały, ponieważ zawsze zwracały jeden rekord z liczbą różnych wyników. Udało mi się jednak stworzyć przykład LINQ-SQL, który działał:
var pl = from r in info
orderby r.metric
group r by r.metric into grp
select new { key = grp.Key, cnt = grp.Count()};
Ten wynik dał mi uporządkowany zestaw rekordów z „metrykami” i liczbą powiązanych z nimi użytkowników. Jestem wyraźnie nowy w LINQ i moim niedoświadczonym okiem to podejście wydaje się bardzo podobne do czystego podejścia LINQ, ale dało mi inną odpowiedź.