Questo è abbastanza semplice, ma io sono in perdita: Dato questo tipo di set di dati:LINQ con groupby e contare
UserInfo(name, metric, day, other_metric)
e questo insieme di dati di esempio:
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
I' mi piacerebbe recuperare una tabella che elenca le metriche in ordine (0,1,2,3 ..) con il numero totale di volte in cui si verifica il conteggio. Quindi, da questo insieme che ci si finisce con:
0 3
1 2
2 2
3 1
Sono alle prese con la sintassi LINQ, ma sono bloccato su dove mettere un groupby e contare .... alcun aiuto ??
Modifica POST: non sono mai riuscito a ottenere le risposte postate perché hanno sempre restituito un record con il numero di conteggi diversi. Tuttavia sono stato in grado di mettere insieme un esempio LINQ to SQL che ha funzionato:
var pl = from r in info
orderby r.metric
group r by r.metric into grp
select new { key = grp.Key, cnt = grp.Count()};
Questo risultato mi ha dato un insieme ordinato di record con 'metriche' e il numero di utenti associati a ciascuno. Sono chiaramente nuovo a LINQ in generale e al mio occhio inesperto questo approccio sembra molto simile al puro approccio LINQ, ma mi ha dato una risposta diversa.
Sì, sì, ma la spiegazione di jimmy mi ha aiutato di più. Tuttavia non sono mai riuscito a far funzionare il suo esempio, ma mi ha portato in una nuova direzione. – Gio