Resumo : neste tutorial, você aprenderá como usar o First()
método LINQ para encontrar o primeiro elemento em uma sequência que satisfaça uma condição.
Introdução ao método LINQ First()
O First()
é um método de extensão LINQ que retorna o primeiro elemento em uma sequência que satisfaz uma condição.
Aqui está a sintaxe do First()
método:
public static TSource First<TSource>(
this IEnumerable<TSource> source
);
Linguagem de código: C# ( cs )
Nesta sintaxe:
TSource
é o tipo de elementos nasource
sequência.source
é a sequência de entrada com o tipoIEnumerable<T>
.
O método retorna o primeiro elemento da source
sequência com o tipo TSource
.
Se source
for null
, o método lança um ArgumentNullException
. Além disso, se source
estiver vazio, o método lança um InvalidOperationException
.
Para especificar uma condição, você usa uma sobrecarga do First()
método como esta:
public static TSource First<TSource>(
this IEnumerable<TSource> source,
Func<TSource,bool> predicate
);
Linguagem de código: C# ( cs )
A predicate
é uma função que testa cada elemento para uma condição.
O método lança um erro InvalidOperationException
se não conseguir encontrar nenhum elemento que satisfaça a condição.
Em geral, o método lança um erro InvalidOperationException
se o elemento source
is empty
ou nenhum satisfaz uma condição. Para evitar a exceção, você pode usar o FirstOrDefault()
método.
O FirstOrDefault()
método retorna o primeiro elemento de uma sequência. Se não for possível encontrar nenhum elemento que satisfaça uma condição, ele retornará um valor padrão.
Exemplos de métodos LINQ First()
Vejamos alguns exemplos de uso do First()
método LINQ.
1) Usando o método LINQ First() com uma condição especificada
O exemplo a seguir demonstra como usar o First()
método para encontrar o número do primeiro elemento em uma lista de números:
using static System.Console;
List<int> numbers = new() { 1, 3, 7, 2, 8, 6 };
int firstEvenNumber = numbers.First(n => n % 2 == 0);
WriteLine($"The first even number is: {firstEvenNumber}");
Linguagem de código: C# ( cs )
Neste exemplo, o First()
método retorna/o primeiro número par devido à condição na expressão lambda:
n => n % 2 == 0
Linguagem de código: C# ( cs )
2) Usando o método LINQ FirstOrDefault() para lidar com exceções
Se nenhum elemento em uma sequência satisfizer uma condição, o First()
método lança uma exceção.
Para evitá-lo, você pode usar o FirstOrDefault()
método. Por exemplo:
using static System.Console;
List<int> numbers = new (){ 1, 3, 5 };
int firstEvenNumber = numbers.FirstOrDefault(n => n % 2 == 0);
WriteLine($"The first even number is: {firstEvenNumber}");
Linguagem de código: C# ( cs )
Saída:
The first even number is: 0
Linguagem de código: C# ( cs )
Neste exemplo, a lista de números contém apenas números ímpares. Portanto, o FirstOrDefault()
método retorna um valor padrão de um número inteiro, que é zero.
Resumo
- Use o método LINQ
First()
para encontrar o primeiro elemento de uma sequência que satisfaça uma condição especificada.