LINQ MinBy

Resumo : neste tutorial, você aprenderá como usar o MinBy()método LINQ para encontrar o elemento que possui um valor mínimo com base em uma função de seletor de chave especificada.

Introdução ao método LINQ MinBy()

O MinBy()método retorna o elemento mínimo em uma sequência com base em uma função seletora de chave especificada.

Aqui está a sintaxe do MinBy()método:

TSource? MinBy<TSource,TKey> (
    this IEnumerable<TSource> source, 
    Func<TSource,TKey> keySelector
);Linguagem de código:  C#  ( cs )

Nesta sintaxe:

  • TSourceé o tipo de elemento na sourcesequência.
  • TKeyé um tipo de chave usada para comparar os elementos da sourcesequência.
  • sourceé uma sequência de entrada de valores.
  • keySelectoré uma função que extrai a chave de cada elemento.

O MinBy()método retorna o elemento da sourcesequência com a chave mínima.

Exemplo do método LINQ MinBy()

Suponha que você tenha uma Productclasse com três propriedades Name, Coste Price:

public class Product
{
    public string Name
    {
        get; set;
    }

    public decimal Price
    {
        get; set;
    }

    public decimal Cost
    {
        get; set;
    }

    public Product(string name, decimal cost, decimal price)
    {
        Name = name;
        Cost = cost;
        Price = price;
    }

    public override string ToString() => $"{Name}, Cost:{Cost}, Price:{Price}";
}Linguagem de código:  C#  ( cs )

O programa a seguir usa o MinBy()método para encontrar o produto que tem o menor preço:

using static System.Console;

var products = new List<Product>() {
    new Product("A",100,120),
    new Product("B",95,130),
    new Product("C",140,150),
};

var product = products.MinBy(p => p.Price);
WriteLine(product);Linguagem de código:  C#  ( cs )

Saída:

A, Cost:100, Price:120Linguagem de código:  texto simples  ( texto simples )

Neste exemplo, usamos a seguinte função seletora para instruir o MinBy()método a retornar o produto com o menor preço:

p => p.PriceLinguagem de código:  C#  ( cs )

Para encontrar o produto com menor custo, você utiliza a seguinte função de seleção:

using static System.Console;

var products = new List<Product>() {
    new Product("A",100,120),
    new Product("B",95,130),
    new Product("C",140,150),
};

var product = products.MinBy(p => p.Cost);
WriteLine(product);Linguagem de código:  C#  ( cs )

Saída:

B, Cost:95, Price:130Linguagem de código:  texto simples  ( texto simples )

Resumo

  • Use o método LINQ MinBy()para retornar o elemento em uma sequência com a chave mínima especificada por uma função seletora de chave.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *