Enumerable.CountBy<TSource,TKey> Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
*/