C'est assez simple mais je suis perdu : Étant donné ce type d'ensemble de données :
UserInfo(name, metric, day, other_metric)
et cet exemple de données :
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
Je voudrais récupérer un tableau qui liste les métriques dans l'ordre (0,1,2,3..) avec le nombre total de fois où le compte apparaît. Donc, à partir de cet ensemble, vous obtiendrez :
0 3
1 2
2 2
3 1
Je me débrouille avec la syntaxe LINQ mais je ne sais pas où mettre un groupby et un count... Une aide ?
POST Edit : Je n'ai jamais pu faire fonctionner les réponses affichées car elles retournaient toujours un enregistrement avec le nombre de comptes différents. Cependant, j'ai pu mettre au point un exemple LINQ to SQL qui a fonctionné :
var pl = from r in info
orderby r.metric
group r by r.metric into grp
select new { key = grp.Key, cnt = grp.Count()};
Ce résultat m'a donné un ensemble ordonné d'enregistrements avec des "métriques" et le nombre d'utilisateurs associés à chacun. Je suis clairement novice en matière de LINQ en général et, pour mon œil non averti, cette approche semble très similaire à l'approche LINQ pure, mais elle me donne une réponse différente.
0 votes
Oui, mais l'explication de Jimmy m'a aidé davantage. Je n'ai jamais réussi à faire fonctionner son exemple, mais il m'a conduit dans une nouvelle direction.
0 votes
@Jimmy a utilisé la syntaxe fonctionnelle pour les expressions LINQ plutôt que la syntaxe de requête LINQ standard, et il a décidé de montrer l'exécution immédiate de ces fonctions plutôt que le format d'exécution différée. Pour une personne novice, cela pourrait prêter à confusion. Je ne sais pas pourquoi il a fait cela.