LINQ - Операторы запросов
Набор методов расширения, образующих шаблон запроса, известен как стандартные операторы запроса LINQ. В качестве строительных блоков выражений запросов LINQ эти операторы предлагают ряд возможностей запросов, таких как фильтрация, сортировка, проекция, агрегирование и т. Д.
Стандартные операторы запросов LINQ можно разделить на следующие в зависимости от их функциональности.
- Операторы фильтрации
- Операторы присоединения
- Проекционные операции
- Операторы сортировки
- Операторы группировки
- Conversions
- Concatenation
- Aggregation
- Квантификационные операции
- Операции с разделами
- Генерация операций
- Установить операции
- Equality
- Операторы Элементов
Операторы фильтрации
Фильтрация - это операция по ограничению набора результатов таким образом, чтобы в нем были только выбранные элементы, удовлетворяющие определенному условию.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
где | Значения фильтрации на основе функции предиката | где | где |
OfType | Фильтровать значения на основе их способности соответствовать указанному типу | Непригодный | Непригодный |
Операторы присоединения
Присоединение относится к операции, при которой нацелены на источники данных с трудными для отслеживания взаимосвязями друг с другом напрямую.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Присоединиться | Оператор объединяет две последовательности на основе совпадающих ключей | присоединиться… в… на… равно… | From x In…, y In… Где xa = ya |
GroupJoin | Соедините две последовательности и сгруппируйте совпадающие элементы | присоединиться… в… на… равно… в… | Присоединиться к группе… В… Вкл… |
Проекционные операции
Проекция - это операция, при которой объект преобразуется в совершенно новую форму со только определенными свойствами.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Выбрать | Оператор проецирует значения на основе функции преобразования | Выбрать | Выбрать |
SelectMany | Оператор проецирует последовательности значений, основанные на функции преобразования, а также объединяет их в единую последовательность. | Используйте несколько предложений from | Используйте несколько предложений From |
Операторы сортировки
Операция сортировки позволяет упорядочивать элементы последовательности на основе одного или нескольких атрибутов.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Сортировать по | Оператор сортирует значения в порядке возрастания. | Сортировать по | Сортировать по |
OrderByDescending | Значения оператора сортируются в порядке убывания | по ... по убыванию | Сортировать по ... По убыванию |
Тогда | Выполняет вторичную сортировку в порядке возрастания | Сортировать по …, … | Сортировать по …, … |
ThenByDescending | Выполняет вторичную сортировку в порядке убывания | orderby…,… по убыванию | Сортировать по…,… По убыванию |
Обеспечить регресс | Выполняет обратный порядок элементов в коллекции | Непригодный | Непригодный |
Операторы группировки
Операторы помещают данные в несколько групп на основе общего общего атрибута.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Группа по | Организуйте последовательность элементов в группы и верните их как коллекцию IEnumerable типа IGrouping <key, element> | группа… по -или- группа… по… в… | Группировать… По… В… |
ToLookup | Выполните операцию группировки, в которой возвращается последовательность пар ключей | Непригодный | Непригодный |
Конверсии
Операторы изменяют тип входных объектов и используются в самых разных приложениях.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
AsEnumerable | Возвращает ввод, набранный как IEnumerable <T> | Непригодный | Непригодный |
AsQueryable | (Общий) IEnumerable преобразуется в (общий) IQueryable | Непригодный | Непригодный |
В ролях | Выполняет приведение элементов коллекции к указанному типу | Используйте явно типизированную переменную диапазона. Например: из строки str в словах | От… Как… |
OfType | Фильтрует значения на основе их, в зависимости от их способности быть приведенным к определенному типу | Непригодный | Непригодный |
ToArray | Принудительное выполнение запроса и преобразование коллекции в массив | Непригодный | Непригодный |
ToDictionary | На основе ключевого селектора функции набор элементов в Dictionary <TKey, TValue> и принудительное выполнение запроса LINQ. | Непригодный | Непригодный |
Составлять список | Принудительное выполнение запроса путем преобразования коллекции в List <T> | Непригодный | Непригодный |
ToLookup | Принудительно выполняет запрос и помещает элементы в Lookup <TKey, TElement> на основе функции селектора ключа | Непригодный | Непригодный |
Конкатенация
Выполняет конкатенацию двух последовательностей и очень похож на оператор Union с точки зрения его работы, за исключением того факта, что он не удаляет дубликаты.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Concat | Две последовательности объединяются для образования единой последовательности. | Непригодный | Непригодный |
Агрегация
Выполняет любой тип желаемой агрегации и позволяет создавать настраиваемые агрегаты в LINQ.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Совокупный | Оперирует значениями коллекции для выполнения настраиваемой операции агрегирования | Непригодный | Непригодный |
В среднем | Рассчитывается среднее значение набора значений. | Непригодный | Агрегировать… в… в среднем () |
Считать | Подсчитывает элементы, удовлетворяющие функции предиката в коллекции | Непригодный | Агрегировать… в… в счет () |
LonCount | Подсчитывает элементы, удовлетворяющие функции предиката в огромной коллекции | Непригодный | Агрегировать… в… в LongCount () |
Максимум | Узнайте максимальную ценность в коллекции | Непригодный | Агрегировать… в… в макс. () |
Мин. | Узнайте минимальную ценность, существующую в коллекции | Непригодный | Агрегировать… в… в мин () |
Сумма | Узнать сумму значений в коллекции | Непригодный | Агрегировать… в… в сумму () |
Квантификационные операции
Эти операторы возвращают логическое значение, то есть True или False, когда некоторые или все элементы в последовательности удовлетворяют определенному условию.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Все | Возвращает значение True, если все элементы последовательности удовлетворяют условию предиката. | Непригодный | Агрегировать… в… во все (…) |
Любые | Путем поиска в последовательности определяет, удовлетворяет ли какой-либо из ее элементов заданному условию. | Непригодный | Агрегировать… в… в любое () |
Содержит | Возвращает значение True, если обнаруживает, что в последовательности присутствует определенный элемент, если последовательность не содержит этот конкретный элемент, возвращается значение false | Непригодный | Непригодный |
Операторы раздела
Разделите входную последовательность на две отдельные части, не переставляя элементы последовательности, а затем возвращая один из них.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Пропускать | Пропускает указанное количество элементов в последовательности и возвращает оставшиеся | Непригодный | Пропускать |
SkipWhile | То же, что и для Skip, за исключением того, что количество элементов для пропуска определяется логическим условием | Непригодный | Пропустить пока |
Взять | Возьмите указанное количество элементов из последовательности и пропустите оставшиеся | Непригодный | Взять |
TakeWhile | То же, что и Take, за исключением того факта, что количество элементов, которые нужно взять, определяется логическим условием | Непригодный | Взять пока |
Генерация операций
Новая последовательность значений создается операторами поколения.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
DefaultIfEmpty | При применении к пустой последовательности создать элемент по умолчанию в последовательности. | Непригодный | Непригодный |
Пустой | Возвращает пустую последовательность значений и является самым простым оператором генерации. | Непригодный | Непригодный |
Спектр | Создает коллекцию, содержащую последовательность целых или числовых значений. | Непригодный | Непригодный |
Повторение | Создает последовательность, содержащую повторяющиеся значения определенной длины | Непригодный | Непригодный |
Установить операции
Есть четыре оператора для заданных операций, каждый из которых дает результат на основе разных критериев.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Отчетливый | Создает список уникальных значений из коллекции путем фильтрации повторяющихся данных, если таковые имеются | Непригодный | Отчетливый |
Кроме | Сравнивает значения двух коллекций и возвращает те из одной коллекции, которых нет в другой коллекции. | Непригодный | Непригодный |
Пересечение | Возвращает набор значений, найденных идентичными в двух отдельных коллекциях. | Непригодный | Непригодный |
Союз | Объединяет содержимое двух разных коллекций в один список, который также без дублирования содержимого | Непригодный | Непригодный |
Равенство
Сравнивает два предложения (перечислимых) и определяет, совпадают они точно или нет.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
Последовательность: равно | Возвращает логическое значение, если две последовательности оказываются идентичными друг другу. | Непригодный | Непригодный |
Операторы Элементов
За исключением DefaultIfEmpty, все остальные восемь стандартных операторов элементов запроса возвращают один элемент из коллекции.
Показать примеры
Оператор | Описание | Синтаксис выражения запроса C # | Синтаксис выражения запроса VB |
---|---|---|---|
ElementAt | Возвращает элемент, присутствующий в определенном индексе в коллекции | Непригодный | Непригодный |
ElementAtOrDefault | То же, что и ElementAt, за исключением того факта, что он также возвращает значение по умолчанию в случае, если конкретный индекс выходит за пределы диапазона | Непригодный | Непригодный |
Первый | Извлекает первый элемент в коллекции или первый элемент, удовлетворяющий определенному условию | Непригодный | Непригодный |
FirstOrDefault | То же, что и First, за исключением того факта, что он также возвращает значение по умолчанию в случае отсутствия таких элементов. | Непригодный | Непригодный |
Последний | Извлекает последний элемент, присутствующий в коллекции, или последний элемент, удовлетворяющий определенному условию | Непригодный | Непригодный |
LastOrDefault | То же, что и Last, за исключением того факта, что он также возвращает значение по умолчанию в случае отсутствия какого-либо такого элемента | Непригодный | Непригодный |
не замужем | Возвращает одинокий элемент коллекции или одинокий элемент, удовлетворяющий определенному условию. | Непригодный | Непригодный |
SingleOrDefault | То же, что и Single, за исключением того, что он также возвращает значение по умолчанию, если не существует какого-либо такого одиночного элемента. | Непригодный | Непригодный |
DefaultIfEmpty | Возвращает значение по умолчанию, если коллекция или список пустые или нулевые | Непригодный | Непригодный |