Оглавление:
Видео: Уроки C# – Работа со строками – Replace, Contains, Remove, Trim, ToLower, ToUpper 2024
Джон Пол Мюллер
Язык INtegrated Query (LINQ) - это особенность. NET Framework, который расширяет ваше понимание намного выше, чем Microsoft. Вы можете использовать LINQ для запроса практически всего, зная основных операторов, а также несколько дополнительных операторов запросов. Если вы немного потеряли на этом пути, Microsoft предлагает множество ресурсов через свою сеть, блоги и форумы.
Основные операторы LINQ
Язык INtegrated Query (LINQ) использует удивительный массив операторов. Оператор - это специальное слово, которое сообщает LINQ, какой запрос выполнить, например, проверить, равны ли два значения. Операторы могут работать сотнями, но в большинстве случаев вы будете выполнять большинство задач, используя только несколько стандартных операторов. Ниже приведен список основных операторов LINQ.
Оператор | Описание |
---|---|
из | Определяет временный объект, используемый для выполнения запроса. Подумайте о
этом операторе как об определении отдельного элемента элемента, из которого вы получите все остальные данные для запроса. Например, вы выбираете , какие данные будут отображаться на выходе и как эти данные упорядочиваются на основе временной переменной. Оператор из является единственным, который должен появляться в каждом запросе, который вы создаете . |
в | Определяет источник данных, используемый для получения данных. Источником данных
может быть любой объект, поддерживаемый поставщиком данных. Поставщик создает соединение между источником данных и запросом LINQ. Например, источник данных может включать в себя объект, такой как поле списка , XML-файл, таблицу SQL Server, службу Active Directory, веб-службу или что-то еще, что вы хотите использовать для сбора информации . Можно даже работать с файлами на жестком диске с помощью запроса LINQ. Запрос может содержать столько совпадающих пар от и от операторов, что необходимо для полного описания источников данных , используемых в запросе. |
select | Выбор выходной информации для запроса. Самый простой вывод
- это тот же объект, который вы определяете с помощью оператора from. Однако оператор выбора может включать вычисленные значения, массивы данных или свойства отдельных объектов. Ограничивающим фактором в большинстве случаев является функциональность, предлагаемая поставщиком LINQ . Все четыре поставщика по умолчанию включают полный диапазон для выбора поведения оператора. Запрос содержит только один оператор select , и этот оператор должен отображаться как последний оператор в запросе . |
где | Описывает условия, при которых элемент появляется как часть
вывода.Оператор where всегда требует логического аргумента для определения условий вывода. Вы могут включать столько, где операторы как должны полностью описывать критерии вывода. LINQ интерпретирует , где операторы в порядке, в котором они появляются в запросе, поэтому порядок важен. Если запрос не работает так, как ожидалось, попробуйте изменить порядок операторов, чтобы лучше описать требования вывода . Используйте отладчик, чтобы помочь найти ошибки в логическом потоке операторов. |
orderby | Определяет порядок отображения выходных элементов. Простейший оператор orderby
полагается на объект , который вы определяете с помощью оператора . Однако оператор orderby может принимать любое утверждение, которое определяет логический аргумент упорядочения как ввод - обычно числовой, алфавитный, символьный или двоичный. Вы можете использовать столько операторов orderby, сколько , чтобы полностью описать порядок вывода данных. Как и оператор where, LINQ интерпретирует оператор orderby в том порядке, в котором он появляется в запросе. Следовательно, порядок порядковых операторов важен. |
join и on | Объединяет два или более источника данных для создания составного представления данных
. Источники данных не должны полагаться на тех же поставщиков. Вы можете использовать столько операторов объединения, сколько , чтобы полностью описать все источники данных, используемые для запроса . Оператор on определяет критерий , используемый для объединения двух источников данных. Соедините соединение и операторы , чтобы создать полный источник данных. |
let | Создает вычисленное значение для использования в запросе. Вычисляемые значения
упрощают формулирование сложных запросов. Кроме того, вы можете передать вычисленное значение вызывающему абоненту для предоставления дополнительной информации о выходе . Во многих случаях оператор let предоставляет средства для передачи данных , которые LINQ обычно не передает из-за конфликта имен. Вы можете использовать столько операторов let, сколько требуется , чтобы обеспечить полную функциональность запроса, но вы должны ограничить использование в ситуациях, когда вычисленное значение увеличивает скорость запроса. |
Изучение групп операторов стандартных запросов LINQ
Использование стандартных операторов запросов значительно облегчает работу с языком INTEGTER Query (LINQ). Во многих отношениях вы, вероятно, уже работали с простыми операторами запросов. Например, когда вы используете ключевое слово orderby, вы используете оператор запроса в группе сортировки стандартных операторов запросов. Когда вы используете ключевое слово where, вы используете другой оператор запроса, но на этот раз он находится в группе фильтрации.
Ниже приведен список стандартных групп операторов запроса и где вы можете найти дополнительную информацию.
Группа | Описание группы | Включенные операторы | Дополнительная информация |
---|---|---|---|
Операции агрегирования | Операторы агрегации помогают выполнять математические задачи
с источником данных. |
Агрегат, Средний, График, LongCount, Макс., Мин и Сумма | Microsoft
Сеть разработчиков: Операции агрегации |
Операции конкатенации | Единственный оператор конкатенации позволяет объединить две последовательности
. |
Конкат | Microsoft
Сеть разработчиков: операции конкатенации |
Преобразование типов данных | Преобразование типов данных происходит в двух формах: отложен и
непересекается. Операторы отложенного преобразования преобразуют результаты запроса в конкретный тип, поскольку код интерпретирует результат . Неопределенные операторы преобразования меняют вывод запроса на определенный тип. |
AsEnumerable, AsQueryable, Cast,
OfType, ToArray, ToDictionary, ToList, и ToLookup |
Microsoft
Сеть разработчиков: преобразование типов данных |
Операции элементов | Операторы элементов помогают вы выбираете конкретный элемент в последовательности , даже если вы не знаете какой-либо идентифицирующей информации
об этом элементе, например его имени. |
ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last,
LastOrDefault, Single и SingleOrDefault |
Microsoft
Сеть разработчиков: операции с элементами |
Операции равенства | Единственный оператор равенства помогает вам определить, две последовательности
равны (количество элементов и содержимое каждого элемента равны). |
SequenceEqual | Microsoft
Сеть разработчиков: операции равенства |
Фильтрация данных | Операторы фильтрации помогают исключить или включить элементы в
последовательность, основанную на определенных критериях. |
OfType и Where | Microsoft
Сеть разработчиков: фильтрация данных |
Операции генерации | Операторы генерации создают новую последовательность, основанную на указанном вами критерии
. |
DefaultIfEmpty, Empty, Range и
Repeat |
Microsoft
Сеть разработчиков: операции генерации |
Группировка данных | Операторы группировки помогают сортировать данные по определенному признаку , например как первая буква в группе строк
. |
GroupBy и ToLookup | Microsoft
Сеть разработчиков: группирование данных |
Операции объединения | Операторы объединения принимают две или более последовательности в качестве входных данных и
создают одну выходную последовательность на основе определенного соединения тип и критерии соединения. |
Присоединиться и GroupJoin | Microsoft
Сеть разработчиков: операции с объединением |
Данные для разбиения на разделы | Операторы секционирования помогут вам определить последовательность
для поиска конкретной информации. |
Пропустить, SkipWhile, Take и
TakeWhile |
Microsoft
Сеть разработчиков: данные разбиения на разделы |
Операции проецирования | Операторы проектирования создают новый тип на основе запроса , который вы создаете, | Выбрать и выбратьMany | Microsoft
Сеть разработчиков: операции проецирования |
Операции квантификатора | Операторы квантора помогают вам выбирать элементы на основе
конкретных критериев. Вы используете эти операторы для определения того, соответствуют ли ни один, один или несколько элементов выбранным критериям . |
Все, любое,
и содержит |
Microsoft
Сеть разработчиков: операции квантификатора |
Операции сложения | Операторы набора создают множества. Подумайте об арифметике, которую вы
выполнили в школе. |
Отличительные, кроме, Intersect,
и Union |
Microsoft
Сеть разработчиков: установка операций |
Сортировка данных | Операторы сортировки помогают вам поместить последовательность в конкретный заказ
. |
OrderBy, OrderByDescending, ThenBy, ThenByDescending и Reverse | Microsoft
Сеть разработчиков: Сортировка данных |
Ресурсы Microsoft LINQ
Всегда полезно знать, где вы можете найти дополнительную информацию и инструменты и улучшения при создании приложений Language INtegrated Query (LINQ). Вот список полезных ресурсов Microsoft для LINQ.
Microsoft Developer Network
Microsoft Developer Network (MSDN) всегда предоставляла базовый материал для всех продуктов Microsoft для разработки. Здесь вы найдете целый склад информации - больше, чем любой человек может, вероятно, читать всю жизнь. Следовательно, вам необходимо тщательно просеивать информацию или быстро потеряться в лабиринте MSDN. Основной сайт MSDN для работы с LINQ предоставляет вам новости, ресурсы и доступ к другой информации, такой как образцы.
Блоги Microsoft
Microsoft хочет, чтобы вы знали, как работать с LINQ. Раньше вы могли найти большую часть необходимой вам информации в MSDN. Веб-сайт MSDN по-прежнему остается хорошим местом, но многие разработчики Microsoft жаловались, что он был слишком формальным (статьи в некоторых случаях довольно сложно понять), и не было возможности взаимодействовать с авторами. Блоги Microsoft предоставляют более дружественную среду для получения информации, где вы действительно можете соответствовать автору. Вот несколько блогов, которые вы захотите посетить при работе с LINQ:
-
Бет Масси: разделяйте доброту, которая является Visual Basic (VB)
-
Блог сообщества Чарли Калверта
-
БЛОГ ВРИУ:. NET и Everything
Большинство этих блогов являются общими - все они обсуждают какие-то проблемы программирования. Следовательно, вы найдете множество тем в каждом блоге. Автор может обсудить файловую систему в одном сообщении, а LINQ - с другим. Каждый из них имеет записи, относящиеся к LINQ, которые вы можете искать с помощью функций поиска в блоге. Хотя Чарли Калверт покинул Microsoft, его блог содержит множество общих данных LINQ.
Форумы Microsoft
Если вы не думаете, что у вас достаточно взаимодействия с Microsoft через блог, сотрудники Microsoft часто часто посещают форумы Microsoft. Загрузка сообщения на правильный форум может дать вам некоторую профессиональную помощь или хотя бы некоторую полезную помощь другого участника форума. Большинство разработчиков полагаются на форум MSDN для получения основных вопросов о LINQ. Вы можете увидеть общий список форумов в сообществе Microsoft. Не забудьте попробовать языковой форум для Visual Basic. СЕТЬ.