Exploitez LINQ pour regrouper et compter efficacement les données
LINQ (Language Integrated Query) en C# fournit un moyen puissant de manipuler et d'interroger des données. Dans les situations où vous devez regrouper et compter des ensembles de données, LINQ fournit une solution concise et efficace.
Supposons que nous ayons un ensemble de données contenant les utilisateurs et leurs métriques et dates associées :
<code>UserInfo(姓名, 指标, 日期, 其他指标) 数据: joe 1 2011/01/01 5 jane 0 2011/01/02 9 john 2 2011/01/03 0 jim 3 2011/01/04 1 jean 1 2011/01/05 3 jill 2 2011/01/06 5 jeb 0 2011/01/07 3 jenn 0 2011/01/08 7</code>
Notre objectif est d'obtenir un tableau, regroupé par ordre d'indicateur (0, 1, 2, 3...), et d'afficher le nombre total d'occurrences de chaque indicateur.
Regroupement et comptage à l'aide de LINQ
Pour y parvenir en utilisant LINQ, nous pouvons utiliser les méthodes 'GroupBy' et 'Select' :
<code>foreach(var line in data.GroupBy(info => info.metric) .Select(group => new { Metric = group.Key, Count = group.Count() }) .OrderBy(x => x.Metric)) { Console.WriteLine("{0} {1}", line.Metric, line.Count); }</code>
Instructions :
Sortie :
<code>0 3 1 2 2 2 3 1</code>
Une autre façon
Bien que la solution LINQ fournie soit efficace, elle pourrait être encore simplifiée :
<code>var result = data.GroupBy(info => info.metric) .Select(group => new { Metric = group.Key, Count = group.Count() }) .OrderBy(x => x.Metric);</code>
La seule différence ici est qu'au lieu d'utiliser une boucle « foreach » pour parcourir les résultats, nous l'attribuons à une variable appelée « résultat ».
Points clés
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!