Filtrando dados em C# com LINQ
A filtragem refere-se à operação de restringir o conjunto de resultados para conter apenas os elementos que satisfazem uma condição especificada. Também é conhecido como seleção de elementos que correspondem à condição especificada.
Importante
Esses exemplos usam uma fonte de System.Collections.Generic.IEnumerable<T> dados. Fontes de dados baseadas em System.Linq.IQueryProvider fontes de dados de uso System.Linq.IQueryable<T> e árvores de expressão. As árvores de expressão têm limitações na sintaxe C# permitida. Além disso, cada IQueryProvider
fonte de dados, como o EF Core , pode impor mais restrições. Verifique a documentação da sua fonte de dados.
A ilustração a seguir mostra os resultados da filtragem de uma sequência de caracteres. O predicado para a operação de filtragem especifica que o caractere deve ser 'A'.
Os métodos de operador de consulta padrão que executam a seleção estão listados na tabela a seguir:
Nome do método | Description | Sintaxe da expressão de consulta C# | Mais Informações |
---|---|---|---|
OfType | Seleciona valores, dependendo de sua capacidade de serem convertidos para um tipo especificado. | Não aplicável. | Enumerable.OfType Queryable.OfType |
Onde | Seleciona valores baseados em uma função de predicado. | where |
Enumerable.Where Queryable.Where |
O exemplo a seguir usa a where
cláusula para filtrar de uma matriz as cadeias de caracteres que têm um comprimento específico.
string[] words = ["the", "quick", "brown", "fox", "jumps"];
IEnumerable<string> query = from word in words
where word.Length == 3
select word;
foreach (string str in query)
{
Console.WriteLine(str);
}
/* This code produces the following output:
the
fox
*/
A consulta equivalente usando sintaxe de método é mostrada no código a seguir:
string[] words = ["the", "quick", "brown", "fox", "jumps"];
IEnumerable<string> query =
words.Where(word => word.Length == 3);
foreach (string str in query)
{
Console.WriteLine(str);
}
/* This code produces the following output:
the
fox
*/