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.

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

Last updated