Главная » Просмотр файлов » Г. Шилдт - С#4.0 Полное руководство

Г. Шилдт - С#4.0 Полное руководство (1160795), страница 126

Файл №1160795 Г. Шилдт - С#4.0 Полное руководство (Г. Шилдт - С#4.0 Полное руководство) 126 страницаГ. Шилдт - С#4.0 Полное руководство (1160795) страница 1262019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 126)

яе1есс пен Ета11Аббгеяя (епсгу.нате, епсгу.Еша11) ! В этом операторе создается новый объект типа Ета11Ас(с(ге я я, содержащий имя и адрес электронной почты, получаемые из объекта типа СопбасС1пуо, хранящегося в массиве сопбасСЯ. Но самое главное, что новые объекты типа Еша11Ас(с(геяя создаются в операторе яе1есС во время выполнения запроса. Применение вложенных операторов йгоа Запрос может состоять из нескольких операторов.Тгот, которые оказываются в этом случае вложенными. Такие операторы Тгош находят применение в тех случаях, когда по запросу требуется получить данные из двух разных источников.

Рассмотрим простой пример, в котором два вложенных оператора Тгош используются в запросе для циклического обращения к элементам двух разных массивов символов. В итоге по такому запросу формируется последовательность результатов, содержащая все возможные комбинации двух наборов символов. // Использовать два вложенных оператора Тгош длл составления списка // всех возможных сочетаний букв А, В и С с буквами Х, У и Е. ояьпч Яуясеш; оягпд Яуяоеш/ьгпьн О Этот класс содержит результат запроса. с1аяя Свгра1г ( роЬ11с сьаг 51гяс; 664 Часть 1. Язык С№ рцЫгс спаг Зесопси рцЫгс Спгра1г(сваг с, сваг с2) Рьгяс = с; Зесопг) = с2; ) ) с1аяя Мп1сгр1еггощя ( ягаггс чо1о нагп () ( сваг[) скгя = ( 'А', "В', 'С' ); с)1аг[) с)1гя2 = ( 'Х', 'У', 'Е' ); О В первом операторе Ггощ организуется циклическое обращение // к массиву символов сьгя, а во втором операторе Ггощ— О циклическое обращение к массиву символов сьгя2.

чаг равгя = Ггот сЫ гп сьгя Ггощ сь2 гп сьгя2 яе1есс пен Сьгра1Г(СЫ, со2); Сопяо1е.кггсегйпе("Все сочетания букв АВС и ХУЕ: Госева(чаг р гп раггя) Сопво1е.иг1Гепапе("(0) (1)", р.гзгяс, р.зесопб); Выполнение этого кода приводит к следующему результату. Все сочетания букв АВС и ХЕЕ: А Х А т А Е В Х В т В Е С Х С т С Е Этот пример кода начинается с создания класса с)тгразг, в котором содержатся результаты запроса.

Затем в нем создаются два массива, спгя и с)тгя2, и, наконец, формируется следующий запрос для получения всех возможных комбинаций двух последовательностей результатов. чаг раггя = Ггощ сЫ 1п слгя Ггощ сь2 гп сьгя2 яе1ест пен СьгРа1г(сЫ, сп2); Во вложенных операторах Ргощ организуется циклическое обращение к обоим массивам символов, с)тгя и с)тгя2.

Сначала из массива спгя получается символ, сохраняемый в переменной с)т1. Затем перечисляется содержимое массива с)тгя2. На каждом шаге циклического обращения во внутреннем операторе Ргощ символ из массива спгя2 сохраняется в переменной с)т2 и далее выполняется оператор яе1есг. В результате выполнения оператора яе1есг создается новый объект типа С)згра1г, Глава 19. Ийе 655 содержащий пару символов, которые сохраняются в переменных СЬ1 и СЬ2 на каждом шаге циклического обращения к массиву во внутреннем операторе 1 лов. А в конечном итоге получается объект типа СЬгра1г, содержащий все возможные сочетания извлекаемых символов.

Вложенные операторы Тгов применяются также для циклического обращения к источнику данных, который содержится в другом источнике данных. Соответствующий пример приведен в разделе "Применение оператора 1ег для создания временной переменной в запросе" далее в этой главе. Группироваиие результатов с помощью оператора дгоир Одним из самых эффективных средств формирования запроса является оператор дгоир, поскольку он позволяет группировать полученные результаты по ключам.

Используя последовательность сгруппированных результатов, можно без особого труда получить доступ ко всем данным, связанным с ключом. Благодаря этому свойству оператора дгоир доступ к данным, организованным в последовательности связанных элементов, осуществляется просто и эффективно. Оператор дгоир является одним из двух операторов, которыми может оканчиваться запрос.

(Вторым оператором, завершающим запрос, является яе1есс.) Ниже приведена общая форма оператора дгоир. дгоир переменная диапазона Ьу нлвч Этот оператор возвращает данные, сгруппированные в последовательности, причем камсдую последовательность обозначает общий ключ. Результатом выполнения оператора дгоир является последовательность, состоящая из элементов типа 1Егоир1пд<ТКеу, ТЕ1евепс>, т.е. обобщенного интерфейса, объявляемого в пространстве имен Еуягев. 11пд.

В этом интерфейсе определена коллекция объектов с общим ключом. Типом переменной запроса, возвращающего группу,является 1ЕпивегаЬ1е<16гоиргпд<ТКеу, ТЕ1евепс».Винтерфейсе 16гоир1пд определено также доступное только для чтения свойство Кеу, возвращающее ключ, связанный с каждой коллекцией. Ниже приведен пример, демонстрирующий применение оператора дгоир. В коде этого примера сначала объявляется массив, содержащий список веб-сайтов, а затем формируется запрос, в котором этот список группируется по имени домена самого верхнего уровня, например .

огд или . Сов. // Продемонстрировать применение оператора дгоир. иягпд Вуяоев; иягпд Вуясевддпси о1аяя Вгоироево ясного чоха Маго() ( яоггпд() неЬяггея = ( "Ьявавек.сов", ТпявавеВ.пес", ТояввлеС.пес", "ЬяиавеР.сов", "ЬявавеЕ.огд", "Ьяиавег.огд", явявавеб.оч", "Ьявавен.пес", "Ьянаве1.оч" !/ Сформировать запрос на получение списка веб-саитов, // группируеммх по имени домена самого верхнего уровня.

656 Часть 1. Язык С№ чаг иеЬАббгя = Ггсв аббг Ьп иеЬяггея ипеге аббг.ьаяс1пбехос('.') (= -1 дгспр аббг Ьу аббг.зпьяхг1пд(аббг.ьаяс1пбехог('.')); Выполнить запрос и вывести его результаты. гсгеасЬ(чаг я1хея 1п иеЬАббгя) ( Сопяс1е.иггхеьгпе("Веб-сайты, сгруппированные " + "пс имени домена" ь аггея.кеу)," Гсгеасп(чаг я1хе 1п яххея) Сспяс1е.Хггхеьгпе(" " + ягхе); Сспяс1е.игьхеЬЬпе(); ) Вот к какому результату приводит выполнение этого кода. Веб-сайты, сгруппированные пс имени домена .сов ЬянавеА.сов Ьянявео.сов Веб-сайты, сгруппированные пс имени домена .пех ЬянавеВ.пех Ьянавес.пех Ьянавен.пег Веб-сайты, сгруппированные по имени домена .сгд ЬянавеЕ.Огд Ьянавер.сгд Веб-сайты, сгруппированные пс имени домена .хч Ьянавео.хч Ьянаве1.хч Как следует из приведенного выше результата, данные, получаемые по запросу, группируются по имени домена самого верхнего уровня в адресе веб-сайта.

Обратите внимание на то, как это делается в операторе дхопр из следующего запроса. чаг иеЬАддгя = Ггсв аддг Ьп иеЬягхея иЬеге аббг.ьаях1пбехос('.') )= -1 дгспр аббг Ьу аббг.зпьягггпд(аббг.ьаяг1пбехог('.'))т Ключ в этом операторе создается с помощью методов Ьаях1пбехОг () и Впьясх хпд (), определенных для данных типа я с гбпд. (Эти методы упоминаются в главе 7, посвященной массивам и строкам. Вариант метода ВпЬясхзпд (), используемый в данном примере, возвращает подстроку, начинающуюся с места, обозначаемого индексом, и продолжающуюся до конца вызывающей строки.) Индекс последней точки в адресе веб-сайта определяется с помощью метода Ьаяхтпбехо1 () . По этому индексу в методе ВпЬя хххпд ( ) создается оставшаяся часть строки, в которой содержится имя домена самого верхнего уровня.

Обратите внимание на то, что в операторе иЬехе отсеиваются все строки, которые не содержат точку. Метод Ьаяс1пбехОГ () возвращает -1, если указанная подстрока не содержится в вызывающей строке. Глава 19. ОНО 657 Последовательность результатов, получаемых при выполнении запроса, хранящегося в переменной ыеЬдс(бгя, представляет собой список групп, поэтому для доступа к каждому члену группы требуются два цикла гогеас(г. Доступ к каждой группе осуществляется во внешнем цикле, а члены внутри группы перечисляются во внутреннем цикле. Переменная шага внешнего цикла гогеас(г должна быть экземпляром интерфейса 16гоир1пг1, совместимым с ключом и типом элемента данных.

В рассматриваемом здесь примере ключи и элементы данных относятся к типу яг г1пп. Поэтому переменная ягсея шага внешнего цикла имеет тип 16гопр1пд<ясг1пд, ясг1по>, а переменная я гсе шага внутреннего цикла — тип ясг1пд. Ради краткости данного примера обе переменные объявляются неявно, хотя их можно объявить и явным образом, как показано ниже. гогеась(16гоир1пд<ясг1пд, ясг1по> ягсея 1п неьдг(пгя( ( Сопяо1е.нг1сеъгпе("Веб-сайты, сгруппированные "по имени домена" + аггея.кеу)г гогеась(яггьпд ягге ьп язгея) Сопяо1е.нггсеъьпе(" " + я1Ге(( Спп*п1е.нггьеъьпе(); Продолжение запроса с помощью оператора ~про При использовании в запросе оператора яе1есс или дгопр иногда требуется сформировать временный результат, который будет служить продолжением запроса для получения окончательного результата.

Характеристики

Тип файла
DJVU-файл
Размер
7,66 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6374
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее