Agrégation et regroupement de données LINQ : explication détaillée des méthodes efficaces
LINQ (Language Integrated Query) offre un moyen puissant et concis d'interroger et de manipuler des données dans une variété de scénarios. L'une des tâches courantes consiste à regrouper les données en fonction de critères spécifiques et à compter le nombre d'occurrences dans chaque groupe.
Utilisation de LINQ pour le regroupement et le comptage de données
Supposons qu'il existe un ensemble de données nommé UserInfo, contenant des champs tels que nom, métrique, jour et autre_métrique. Pour trier par valeur de métrique et obtenir le nombre de métriques, vous pouvez utiliser la syntaxe LINQ suivante :
<code class="language-csharp">var groupMetrics = from info in data // 从数据源开始 group info by info.metric into grp // 按'metric'字段分组 select new { Key = grp.Key, Count = grp.Count() }; // 选择键和计数</code>
Cette requête effectue les opérations suivantes :
Après avoir exécuté cette requête, vous obtiendrez une liste contenant les valeurs de métriques et leurs décomptes correspondants, fournissant ainsi un résumé de la distribution des métriques au sein de l'ensemble de données.
Résultats de regroupement personnalisés
La solution ci-dessus utilise des types anonymes pour construire des résultats groupés. Cependant, vous pouvez également définir une classe personnalisée pour représenter des données groupées, vous donnant ainsi plus de contrôle sur le format de sortie.
Autres solutions
Une alternative utilisant LINQ to SQL est mentionnée dans la question d'origine :
<code class="language-csharp">var pl = from r in info orderby r.metric group r by r.metric into grp select new { key = grp.Key, cnt = grp.Count()};</code>
Bien que les deux solutions atteignent l'objectif de regrouper par métrique et de compter les occurrences, la syntaxe LINQ to SQL est spécifiquement conçue pour interroger une base de données, tandis que la syntaxe LINQ pure peut être appliquée à toute collection énumérée d'objets UserInfo. La méthode que vous choisissez dépend du contexte et de la source de données avec laquelle vous travaillez.
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!