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