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 | Возвращает значение по умолчанию, если коллекция или список пустые или нулевые | Непригодный | Непригодный |