Enumerable.CountBy<TSource,TKey> Metodo

Definizione

Restituisce il numero di elementi nella sequenza di origine raggruppati per chiave.

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))

Parametri di tipo

TSource

Tipo di elementi di source.

TKey

Tipo della chiave restituita da keySelector.

Parametri

source
IEnumerable<TSource>

Sequenza che contiene elementi da contare.

keySelector
Func<TSource,TKey>

Funzione per estrarre la chiave per ogni elemento.

keyComparer
IEqualityComparer<TKey>

Oggetto IEqualityComparer<T> con cui confrontare le chiavi.

Valori restituiti

Enumerabile contenente le frequenze di ogni occorrenza chiave in source.

Esempio

Nell'esempio di codice seguente viene illustrato come usare CountBy per calcolare il numero di dipendenti in ogni reparto.

(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
*/

Si applica a