Фильтрация данных в C# с помощью LINQ

Фильтрация — это операция по ограничению значений в результирующем наборе только элементами, соответствующими указанному условию. Он также называется выбором элементов, которые соответствуют указанному условию.

На следующем рисунке показаны результаты операции фильтрации последовательности символов. Предикат для операции фильтрации указывает, что символ должен быть "A".

Diagram that shows a LINQ filtering operation

Стандартные методы оператора запроса, выполняющие выбор, перечислены в следующей таблице:

Имя метода Description Синтаксис выражения запроса C# Дополнительные сведения
OfType Выбирает значения в зависимости от возможности приведения их к указанному типу. Неприменимо. Enumerable.OfType

Queryable.OfType
Где Выбирает значения, основанные на функции предиката. where Enumerable.Where

Queryable.Where

В следующем примере для выбора из массива строк, имеющих определенную длину, используется предложение where.

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

Эквивалентный запрос с использованием синтаксиса метода показан в следующем коде:

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

См. также