Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
549 of 1492 menu
◀ ▶

Интерфейс IQueryable

Интерфейс IQueryable<T> описывает отложенный запрос, который строит дерево выражений. Набор операторов совпадает с Enumerable, но вызовы записываются в дерево, а не выполняются сразу на месте. Для списка в памяти дерево получают через AsQueryable.

Синтаксис

IQueryable<T> query = list.AsQueryable().Where(x => x > 0);

Пример

Давайте получим IQueryable из списка и применим Where:

using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; IQueryable<int> query = nums.AsQueryable().Where(n => n > 3); List<int> res = query.ToList(); Console.WriteLine(string.Join(" ", res)); } }

Результат выполнения кода:

"4 5"

Пример

Давайте проверим тип результата AsQueryable:

using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; IQueryable<int> query = nums.AsQueryable(); Console.WriteLine(query.GetType().Name.StartsWith("EnumerableQuery")); } }

Результат выполнения кода:

True

Смотрите также

  • метод Where,
    который отбирает элементы по условию
  • метод Select,
    который преобразует каждый элемент
  • метод ToList,
    который собирает результат в список
  • метод OrderBy,
    который упорядочивает по ключу
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить