Набор методов расширения, формирующих шаблон запроса, известен как стандартные операторы запросов LINQ. Являясь строительными блоками выражений запросов LINQ, эти операторы предлагают широкий спектр возможностей запросов, таких как фильтрация, сортировка, проекция, агрегирование и т. Д.
Стандартные операторы запросов LINQ могут быть разбиты на следующие по их функциональности.
- Операторы фильтрации
- Присоединяйтесь к операторам
- Операции проекции
- Операторы сортировки
- Группировка операторов
- Конверсии
- конкатенация
- агрегирование
- Операции квантификатора
- Операции с разделами
- Операции генерации
- Операции над множествами
- равенство
- Элемент Операторы
Операторы фильтрации
Фильтрация — это операция по ограничению результирующего набора таким образом, чтобы в нем были только выбранные элементы, удовлетворяющие определенному условию.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
где | Фильтровать значения на основе функции предиката | где | куда |
OfType | Фильтровать значения на основе их способности быть указанным типом | Непригодный | Непригодный |
Присоединяйтесь к операторам
Присоединение относится к операции, в которой нацелены источники данных с трудными для непосредственного отношения друг с другом.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
Присоединиться | Оператор объединяет две последовательности на основе совпадающих ключей | присоединиться … в … на … равно … | От х в …, у в … где ха = я |
GroupJoin | Соедините две последовательности и сгруппируйте соответствующие элементы | присоединиться … в … на … равно … в … | Вступление в группу… В… Вкл… |
Операции проекции
Проекция — это операция, в которой объект преобразуется в совершенно новую форму с только определенными свойствами.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
Выбрать | Оператор проецирует значения на основе функции преобразования | Выбрать | Выбрать |
SelectMany | Оператор проецирует последовательности значений, которые основаны на функции преобразования, а также объединяет их в одну последовательность | Использовать несколько из предложений | Используйте несколько предложений From |
Операторы сортировки
Операция сортировки позволяет упорядочить элементы последовательности на основе одного или нескольких атрибутов.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
Сортировать по | Оператор сортировки значений в порядке возрастания | Сортировать по | Сортировать по |
OrderByDescending | Оператор сортировки значений в порядке убывания | упорядочить … по убыванию | Сортировать по … По убыванию |
ThenBy | Выполняет вторичную сортировку в порядке возрастания | Сортировать по …, … | Сортировать по …, … |
ThenByDescending | Выполняет вторичную сортировку в порядке убывания | упорядочить …, … по убыванию | Сортировать по…,… по убыванию |
Задний ход | Выполняет изменение порядка элементов в коллекции | Непригодный | Непригодный |
Группировка операторов
Операторы помещают данные в несколько групп на основе общего общего атрибута.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
Группа по | Организовать последовательность элементов в группы и вернуть их в виде коллекции IEnumerable типа IGrouping <key, element> | группа … по-или-группа … по … в … | Группа … По … В … |
ToLookup | Выполните операцию группировки, в которой возвращается последовательность пар ключей | Непригодный | Непригодный |
Конверсии
Операторы изменяют тип объектов ввода и используются в самых разных областях.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
AsEnumerable | Возвращает ввод, напечатанный как IEnumerable <T> | Непригодный | Непригодный |
AsQueryable | (Универсальный) IEnumerable преобразуется в (универсальный) IQueryable | Непригодный | Непригодный |
В ролях | Выполняет приведение элементов коллекции к указанному типу. | Используйте явно введенную переменную диапазона. Например: из строки str в словах | От … Как … |
OfType | Фильтрует значения на основе их, в зависимости от их способности быть приведенным к определенному типу | Непригодный | Непригодный |
ToArray | Принудительно выполняет запрос и выполняет преобразование коллекции в массив. | Непригодный | Непригодный |
ToDictionary | На основе функции ключевого селектора установить элементы в словарь <TKey, TValue> и принудительно выполнить запрос LINQ. | Непригодный | Непригодный |
К списку | Принудительное выполнение запроса путем преобразования коллекции в список <T> | Непригодный | Непригодный |
ToLookup | Принудительно выполняет запрос и помещает элементы в Lookup <TKey, TElement> на основе функции выбора ключа | Непригодный | Непригодный |
конкатенация
Выполняет конкатенацию двух последовательностей и очень похож на оператор Union с точки зрения его работы, за исключением того факта, что он не удаляет дубликаты.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
Concat | Две последовательности объединяются для формирования одной последовательности. | Непригодный | Непригодный |
агрегирование
Выполняет любой тип требуемой агрегации и позволяет создавать собственные агрегации в LINQ.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
заполнитель | Работает со значениями коллекции для выполнения пользовательской операции агрегирования. | Непригодный | Непригодный |
Средний | Среднее значение коллекции значений рассчитывается | Непригодный | Агрегировать… В… В Среднее () |
подсчитывать | Подсчитывает элементы, удовлетворяющие предикатной функции в коллекции | Непригодный | Агрегировать … В … В Граф () |
LonCount | Подсчитывает элементы, удовлетворяющие предикатной функции в огромной коллекции | Непригодный | Агрегировать … В … В LongCount () |
Максимум | Узнайте максимальное значение в коллекции | Непригодный | Агрегат … В … В Макс () |
Min | Узнайте минимальное значение, существующее в коллекции | Непригодный | Агрегировать … В … В Мин () |
сумма | Узнайте сумму значений в коллекции | Непригодный | Агрегировать … в … в сумму () |
Операции квантификатора
Эти операторы возвращают логическое значение, то есть True или False, когда некоторые или все элементы в последовательности удовлетворяют определенному условию.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
Все | Возвращает значение True, если все элементы последовательности удовлетворяют условию предиката. | Непригодный | Агрегировать… во… во все (…) |
любой | Определяя путем поиска последовательности, удовлетворяет ли какой-либо элемент из того же условия указанному условию | Непригодный | Агрегировать … В … В Любое () |
Содержит | Возвращает значение True, если обнаруживает, что в последовательности есть определенный элемент, если последовательность не содержит этот конкретный элемент, возвращается значение false | Непригодный | Непригодный |
Операторы раздела
Разделите входную последовательность на две отдельные секции, не переставляя элементы последовательности и не возвращая одну из них.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
Пропускать | Пропускает определенное количество элементов в последовательности и возвращает оставшиеся | Непригодный | Пропускать |
SkipWhile | То же, что и в Skip, за исключением того, что количество пропускаемых элементов определяется логическим условием | Непригодный | Пропустить пока |
принимать | Возьмите указанное количество элементов из последовательности и пропустите остальные | Непригодный | принимать |
TakeWhile | То же, что и в Take, за исключением того факта, что количество элементов для взятия определяется логическим условием | Непригодный | Возьми пока |
Операции генерации
Новая последовательность значений создается операторами поколений.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
DefaultIfEmpty | При применении к пустой последовательности, создать элемент по умолчанию в последовательности | Непригодный | Непригодный |
пустой | Возвращает пустую последовательность значений и является самым простым оператором поколений. | Непригодный | Непригодный |
Спектр | Создает коллекцию, имеющую последовательность целых или чисел | Непригодный | Непригодный |
Повторение | Создает последовательность, содержащую повторяющиеся значения определенной длины | Непригодный | Непригодный |
Операции над множествами
Существует четыре оператора для операций над множествами, каждый из которых дает результат на основе различных критериев.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
отчетливый | Выводит список уникальных значений из коллекции путем фильтрации дублированных данных, если таковые имеются | Непригодный | отчетливый |
Кроме | Сравнивает значения двух коллекций и возвращает значения из одной коллекции, которых нет в другой коллекции. | Непригодный | Непригодный |
пересекаться | Возвращает найденный набор значений, которые будут идентичны в двух разных коллекциях | Непригодный | Непригодный |
союз | Объединяет содержимое двух разных коллекций в единый список без дублированного содержимого. | Непригодный | Непригодный |
равенство
Сравнивает два предложения (перечислимые) и определяет, точно ли они совпадают или нет.
оператор | Описание | Синтаксис выражения запроса C # | VB Query Expression Syntax |
---|---|---|---|
SequenceEqual | Получает логическое значение, если две последовательности идентичны друг другу | Непригодный | Непригодный |
Элемент Операторы
За исключением DefaultIfEmpty, все остальные восемь стандартных операторов элемента запроса возвращают один элемент из коллекции.