Enumerable.CountBy<TSource,TKey> Método

Definición

Devuelve el recuento de elementos de la secuencia de origen agrupada por clave.

public static System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,int>> CountBy<TSource,TKey>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey>? keyComparer = default);
static member CountBy : seq<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IEqualityComparer<'Key> -> seq<System.Collections.Generic.KeyValuePair<'Key, int>>
<Extension()>
Public Function CountBy(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), Optional keyComparer As IEqualityComparer(Of TKey) = Nothing) As IEnumerable(Of KeyValuePair(Of TKey, Integer))

Parámetros de tipo

TSource

Tipo de elementos de source.

TKey

Tipo de la clave devuelta por keySelector.

Parámetros

source
IEnumerable<TSource>

Secuencia que contiene elementos que se van a contar.

keySelector
Func<TSource,TKey>

Función para extraer la clave de cada elemento.

keyComparer
IEqualityComparer<TKey>

que IEqualityComparer<T> se va a comparar las claves con.

Devoluciones

Enumerable que contiene las frecuencias de cada aparición de clave en source.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar CountBy para calcular el número de empleados de cada departamento.

(string Name, int Age, string Department)[] employees =
{
    ("Saly", 23, "IT"),
    ("David", 25, "Sales"),
    ("Mahmoud", 22, "IT"),
    ("Qamar", 22, "HR"),
    ("Sara", 25, "IT"),
    ("John", 26, "HR"),
    ("Jaffar", 32, "Sales")
};

// Count the number of employees per department
var countPerDepartment = employees.CountBy(employee => employee.Department);

foreach (var item in countPerDepartment)
{
    Console.WriteLine($"Department: {item.Key} - Employees Count: {item.Value}");
}

/*
This code produces the following output:

Department: IT - Employees Count: 3
Department: Sales - Employees Count: 2
Department: HR - Employees Count: 2
*/

Se aplica a