CountBy
Este método aplica uma função para gerar uma chave à cada elemento e retorna uma nova coleção onde cada elemento é uma tupla entre a chave e a quantidade de elementos com esta chave na coleção.
Parâmetros | Retorno |
---|---|
Func<T, TKey> projection IEnumerable<T> source |
IEnumerable<(TKey Key, int Count)> |
Como usar
Para utilizar este método basta informar a função projection
para projetar a chave de cada elemento.
Contando números pares e ímpares em uma coleção
//IEnumerable<int> source = { 1 .. 100 }
IEnumerable<(bool, int)> result = source.CountBy(value => value % 2 == 0);
// result = { (false, 50), (true, 50) }
Contado produtos de acordo com a faixa de valor
class Product {
int Id {get; set;}
string Name {get; set;}
double Price {get; set;}
}
// products:
// | Id | Name | Price |
// | 1 | Notebook | 800 |
// | 2 | Mouse | 20 |
// | 3 | Wallet | 40 |
// | 4 | Book | 10 |
// | 5 | Smartphone | 400 |
IEnumerable<(string, Product)> result =
products.CountBy(
product =>
product.Price > 200 ? "Expensive" : "Cheap")
// result = { ("Expensive", 2), ("Cheap", 3) }