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 nasource
sequência.TKey
é um tipo de chave usada para comparar os elementos dasource
sequê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 source
sequência com a chave mínima.
Exemplo do método LINQ MinBy()
Suponha que você tenha uma Product
classe com três propriedades Name
, Cost
e 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:120
Linguagem 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.Price
Linguagem 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:130
Linguagem 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.