Maison >développement back-end >C++ >Comment puis-je compter efficacement les occurrences d'éléments dans une liste C# à l'aide de GroupBy ?

Comment puis-je compter efficacement les occurrences d'éléments dans une liste C# à l'aide de GroupBy ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-02 13:03:39260parcourir

How Can I Efficiently Count Element Occurrences in a C# List Using GroupBy?

Compter les occurrences d'éléments dans une liste à l'aide de GroupBy

Compter le nombre d'occurrences de chaque élément dans une liste peut être une tâche fastidieuse, en particulier si la liste est longue. Cependant, il existe une solution élégante utilisant la méthode GroupBy en C#.

La méthode GroupBy prend une séquence d'éléments en entrée et les regroupe en fonction d'une clé spécifiée. Dans ce cas, nous souhaitons regrouper les éléments par leurs valeurs.

var l1 = new List<int>() { 1, 2, 3, 4, 5, 2, 2, 2, 4, 4, 4, 1 };

var g = l1.GroupBy(i => i);

La méthode GroupBy renvoie un IGrouping objet, où TKey est le type de la clé de regroupement et TElement est le type des éléments du groupe. Dans ce cas, la clé de regroupement est l'élément lui-même (c'est-à-dire la valeur de l'élément) et les éléments du groupe sont les occurrences de cette valeur (c'est-à-dire le nombre de fois que la valeur apparaît dans la liste).

Itérer sur chaque groupe nous donne la clé (la valeur de l'élément) et le nombre d'occurrences (le nombre de groupe).

foreach (var grp in g)
{
  Console.WriteLine($"{grp.Key} {grp.Count()}");
}

Résultat :

1 2
2 4
3 1
4 4
5 1

Cette solution est efficace et facile à mettre en œuvre, ce qui en fait un ajout précieux à la boîte à outils de tout programmeur.

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