Maison > développement back-end > C++ > Comment les méthodes GroupBy et Count de LINQ peuvent-elles être utilisées pour l'agrégation de données ?

Comment les méthodes GroupBy et Count de LINQ peuvent-elles être utilisées pour l'agrégation de données ?

DDD
Libérer: 2025-01-22 00:51:11
original
370 Les gens l'ont consulté

How can LINQ's GroupBy and Count methods be used for data aggregation?

Utilisez les méthodes GroupBy et Count de LINQ pour l'agrégation de données

L'opérateur GroupBy dans LINQ est un outil puissant pour agréger des données en fonction de clés spécifiées. Combinée à la méthode Count(), elle peut être utilisée pour compter les occurrences de valeurs groupées.

Supposons le scénario suivant : vous disposez d'un ensemble de données appelé UserInfo, qui contient des enregistrements de métriques et d'autres informations pour les utilisateurs. Pour récupérer le nombre d'occurrences de métriques, vous devez regrouper les données par métrique et compter le nombre d'enregistrements dans chaque groupe.

<code class="language-c#">// 示例数据集
List<userinfo> data = new List<userinfo>
{
    new UserInfo { Name = "joe", Metric = 1, Day = "01/01/2011" },
    new UserInfo { Name = "jane", Metric = 0, Day = "01/02/2011" },
    new UserInfo { Name = "john", Metric = 2, Day = "01/03/2011" },
    new UserInfo { Name = "jim", Metric = 3, Day = "01/04/2011" }
};</code>
Copier après la connexion

Voici comment obtenir le résultat souhaité à l'aide de GroupBy et Count de LINQ :

<code class="language-c#">var metricCounts = data.GroupBy(info => info.Metric)
                        .Select(group => new { Metric = group.Key, Count = group.Count() })
                        .OrderBy(x => x.Metric);

foreach (var line in metricCounts)
{
    Console.WriteLine($"{line.Metric} {line.Count}");
}</code>
Copier après la connexion

Dans ce code, l'opérateur GroupBy() regroupe les données par propriétés Metric, créant une collection d'objets IEnumerable. L'opérateur Select() projette ensuite chaque groupe dans un type anonyme avec les propriétés Metric et Count. Enfin, l'opérateur OrderBy() trie les résultats par ordre croissant par valeur métrique.

La sortie de ce code sera :

<code>0 1
1 1
2 1
3 1</code>
Copier après la connexion

Cela montre comment utiliser LINQ pour récupérer efficacement des données agrégées en regroupant et en comptant les valeurs. En comprenant l'utilisation de GroupBy et Count, vous pouvez manipuler et résumer efficacement les données dans votre application.

Veuillez noter que le nombre de Metric=0 dans les exemples de données est différent dans l'article original et dans la version modifiée, ce qui peut être une erreur dans l'article original. La version modifiée est plus cohérente avec la sortie du code.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal