Partilhar via


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'.

Diagrama que mostra uma operação de filtragem LINQ

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
*/

Consulte também