Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Фильтрация относится к операции ограничения результирующих наборов только теми элементами, которые удовлетворяют указанному условию. Он также называется выбором элементов, которые соответствуют указанному условию.
Это важно
В этих примерах используется 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
*/