Фильтрация данных в C# с помощью LINQ
Фильтрация — это операция по ограничению значений в результирующем наборе только элементами, соответствующими указанному условию. Он также называется выбором элементов, которые соответствуют указанному условию.
Внимание
В этих примерах используется System.Collections.Generic.IEnumerable<T> источник данных. Источники данных, основанные на System.Linq.IQueryProvider использовании System.Linq.IQueryable<T> источников данных и деревьев выражений. Деревья выражений имеют ограничения на допустимый синтаксис C#. Кроме того, каждый IQueryProvider
источник данных, например EF Core , может наложить больше ограничений. Ознакомьтесь с документацией по источнику данных.
На следующем рисунке показаны результаты операции фильтрации последовательности символов. Предикат для операции фильтрации указывает, что символ должен быть "A".
Стандартные методы оператора запроса, выполняющие выбор, перечислены в следующей таблице:
Имя метода | 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
*/
См. также
- System.Linq
- предложение where
- Практическое руководство. Выполнение запроса к метаданным сборки при помощи отражения (LINQ) (C#)
- Практическое руководство. Запрос файлов с указанными атрибутами или именем (C#)
- Практическое руководство. Сортировка или фильтрация текстовых данных по любому слову или полю (LINQ) (C#)