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
DDDoriginal
2025-01-22 00:51:11371parcourir

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>

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>

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>

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!

Déclaration:
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