Resumo : neste tutorial, você aprenderá como usar o Min()
método LINQ para obter o elemento mínimo em uma sequência.
Introdução ao método LINQ Min()
O
é um método de extensão LINQ que retorna o valor mínimo em uma sequência de valores. A sintaxe do Min()
método é a seguinte:Min()
public static TResult? Min (
this IEnumerable<TSource?> source
);
Linguagem de código: C# ( cs )
Nesta sintaxe:
TSource
é o tipo de elemento nasource
sequência.source
é a sequência de entrada que contém o IEnumerable<T> .
O Min()
retorna o valor mínimo da source
sequência. Ele ignora null
na source
sequência.
Se a source
sequência estiver vazia, Min()
lança um InvalidOperationException
. Além disso, se a source
sequência for null
, o método lançará um ArgumentNullexception
.
O Min()
método possui uma sobrecarga que aceita uma função seletora como segundo argumento:
public static TResult? Min (
this IEnumerable<T?> source
Func<TSource,TResult> selector
);
Linguagem de código: C# ( cs )
Nesta sintaxe, selector
é uma função de transformação que se aplica a cada elemento da source
sequência.
Exemplos de métodos LINQ Min()
Vejamos alguns exemplos de uso do Min()
método LINQ.
1) Usando o método LINQ Min() para encontrar o valor mínimo em uma matriz de inteiros
O programa a seguir demonstra como usar o Min()
método para encontrar o número mínimo em uma matriz de inteiros:
int[] numbers = { 5, 2, 8, 3, 7 };
int min = numbers.Min();
Console.WriteLine($"Minimum value = {min} ");
Linguagem de código: C# ( cs )
Saída:
Minimum value = 2
Linguagem de código: C# ( cs )
2) Usando o método LINQ Min() com um exemplo de função seletora
O exemplo a seguir demonstra como usar o Min()
método com uma função seletora para encontrar o comprimento mínimo de uma sequência de strings:
string[] words = { "apple", "banana", "mango" };
int minLength = words.Min(word => word.Length);
Console.WriteLine($"Minimum length = {minLength}");
Linguagem de código: C# ( cs )
Saída:
Minimum length = 5
Linguagem de código: C# ( cs )
3) Usando o método LINQ Min() para encontrar uma string com uma sequência vazia
Se a sequência de entrada estiver vazia, o Min()
método lançará um arquivo InvalidOperationException
. Nesse caso, você pode usar o DefaultIfEmpty()
método para especificar um valor mínimo padrão e evitar a exceção.
Por exemplo:
int[] lengths = {};
var minLength = lengths.DefaultIfEmpty(0).Min();
Console.WriteLine($"Minimum value = {minLength}");
Linguagem de código: C# ( cs )
Saída:
Minimum value = 0
Linguagem de código: C# ( cs )
3) Usando o método LINQ Min() com uma sequência de objetos de um tipo personalizado
Suponha que você tenha uma classe Produto com duas propriedades Nome e Preço:
public class Product
{
public string Name
{
get; set;
}
public decimal Price
{
get; set;
}
public Product(string name, decimal price)
{
Name = name;
Price = price;
}
}
Linguagem de código: JavaScript ( javascript )
O programa a seguir usa o método Min() para encontrar o preço mínimo em uma lista de produtos:
using static System.Console;
var products = new List<Product>() {
new Product("A",100),
new Product("B",200),
new Product("C",150),
};
var minPrice = products.Min(p => p.Price);
WriteLine(minPrice);
Linguagem de código: JavaScript ( javascript )
Saída:
100
Ele retorna 100 conforme o esperado.
Para encontrar um produto que tenha preço mínimo, você pode usar o MinBy()
método.
Resumo
- Use o
Min()
método LINQ para encontrar o valor mínimo em uma sequência. - Use o
DefaultIfEmpty()
método com oMin()
método para especificar um valor mínimo padrão se a sequência estiver vazia.