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

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 121

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

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

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

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

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

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

дгоир переменная диапазона Ьу ключ Этот оператор возвращает данные, сгруппированные в последовательности, причем каждую последовательность обозначает общий ключ. Ниже приведен пример, демонстрирующий применение оператора дгоир. В коде этого примера сначала обьявляется массив, содержащий список веб-сайтов, а затем формируется запрос, в котором этот список группируется по имени домена самого верхнего уровня, например .

огд или . сов. // Продемонстрировать применение оператора дгоир. ивгпд зувгели ив1пд Зув сев. напои с1авв пгоирпево ( всасъс чо1и Иа1п() ( всггпд() непа'Гев = ("Ьвиавеа.сов", "Ьвпавеэ.пес", "Ьвиавес.пес", "Ьвиавев.сов", "Ьвиавек.огд", "Ьввавеу.огд", "Ьвиавев.сч", "Ьвиавеп.пес", "Ьвиавег.сч"); 630 Часть 1. язык Сз // Сформировать запрос на получение списка веб-сайтов, // группируемых по имени домена самого верхнего уровня. чаг неоаббгя Ггоы аббг гп неЬяхсея нпеге аббг.ьаяс1пбехот(".") 1= -1 дгопр аббг Ьу аббг.зпоякгкпд(аббг.ьаяс1пбехот(".")) // Выполнить запрос и вывести его результаты.

Гогеасп(чаг ябсея Ьп неЬАббгя) ( Сопяо1е.нгксеЬ1пе("Веб-сайты, сгруппированные " + "по имени ломена" ь яткея.хеу)т гогеасЬ(чаг я1се Ьп яхсея) Сопзо1е.нг1кеЬ1пе(" " + явке)) Сопяо1е.иг1сеЬхпе()т ) ) Вот к какому результату приводит выполнение этого кода: Веб-сайты, сгруппированные по имени домена .соы Ьяиаыеа.сом Ьяиаыеп.соы Веб-сайты, сгруппированные по имени домена .пес ЬяиаиеВ.пес ЬзиаыеС.пег Ьзиаыеи.пес Веб-сайты, сгруппированные по имени домена .огд ьянаыех.оьд Ьяиаыеу,огд Веб-сайты, сгруппированные по имени домена .Гч Ьяиаыео.сч Ьяиаые1.сч Как следует из приведенного выше результата, данные, получаемые по запросу, группируются по имени домена самого верхнего уровня в адресе веб-сайта.

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

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

Переменная шага внешнего цикла гогеасп должна быть экземпляром интерфейса 1огопр1пп, совместимым с ключом и типом элемента данных. В рассматриваемом здесь примере ключи и элементы данных относятся к типу зггьпд, Поэтому переменная зйгез шага внешнего цикла имеет тип 16гопр1п9<эгг1пд, згг1п9>, а переменная ваге шага внутреннего цикла — тип зсг1п9.

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

Ниже приведена общая форма оператора 1пго. ьпсо имя тело запроса где имя обозначает конкретное имя переменной диапазона, используемой для циклического обращения к временному результату в продолжении запроса, на которое указывает тело запросе. Когда оператор 1пго используется вместе с оператором зе1есс или дгопр, то его называют продолжением запроса, поскольку он продолжает запрос. По существу, продолжение запроса воплощает в себе принцип построения нового запроса по результатам предыдущего.

Не зевлегиу! Существует также форма оператора ьпго, предназначенная для использования вместе с оператором 9 о1п„создающим групповое объединение, о котором речь пойдет далее в этой главе. Ниже приведен пример программы, в которой оператор 1пго используется вместе с оператором 9гопр. Эта программа является переработанным вариантом предыдущего примера, в котором список веб-сайтов формируется по имени домена самого верхнего уровня. А в данном примере первоначальные результаты запроса сохраняются в переменной диапазона ыз и затем отбираются для исключения всех групп, состоящих менее чем из трех элементов. 632 Часть (, ((зык С» // Использовать оператор гпго вместе с оператором сгоир. иягпо Зуягевк ия»пд Вузгев.Ьгпп) с1аяз 1пгооево ( ясасгс чоьб Ма1п() ( ясггпс[) неЬя1гея = ("Ьяиавел.сов", "ЬзнавеВ.пег", "ЬзнавеС.пег", "Ьяиавео.сов", "ЬянавеЕ.ого", "Ьянавеу.ого", "Ьянавео.гч", "ЬяиавеН.пег", "Ьяиаве1.гч")1 // Сформировать запрос на получение списка // веб-саитов, группируеыых по имени домена самого // верхнего Уровня, но вмбрать только те группы, // которые состоят более чем из двух членов.

// Здесь нз — зто переменная диапазона для ряда // групп, возвращаемых при выполнении первой // половины запроса. чаг неЬКддгя Гсов абдт гп неЬяггея нЬеге аббг.Ьаяг1пбехОГ(".") (= -1 огонр абдг Ьу аббг.зчпяггспц(аббг.ьаяг1пбехОГ(".")) 1псо ня ньеге ня.Сонпг() > 2 яе1есг ня) // Выполнить запрос и вывести его результаты. Сопяо1е.нгггеЬ1пе("Домены самого верхнего " + "уровня с более чем двумя членами.1п")) Гогеасп(чаг аггея гп неолббгя) ( Сопяо1е.нгггеЬгпе("Содержимое домена: " + я1гея.хеу)) Гогеасп(чаг ягге гп аггея) Сопяо1е.нггСепфпе(" " + ягве)1 Сопяо1е.

Игггеп»пе (); ) Эта программа дает следующий результат: Домены самого верхнего уровня с более чем двумя членами. Содержимое домена: .пег ЬянавеВ.пег ЬянавеС.пег ЬяпавеН.пеС Как следует из результата выполнения приведенной выше программы, по запросу возвращается только группа . пеС, поскольку это единственная группа, содержащая более двух элементов. Глава 19. АСМО 633 Обратите особое внимание в данном примере программы на следующую последовательность операторов в формируемом запросе: Чгопр аоот Ьу апог.зпЬвпг1пд(асог.ьавптпоенсй(".Г)) ьпсо нв ноете нв.ооппп() > 2 ве1есп нвг Сначала результаты выполнения оператора дгопр сохраняются как временные, и новый запрос начинается с нх обработки.

В качестве переменной диапазона в новом запросе служит переменная нв. Она охватывает все группы, возвращаемые по первому запросу. Ведь результатом первого запроса является последовательность групп, так как результаты запроса отбираются в операторе нпеге с таким расчетом, чтобы в конечном итоге остались только те группы, которые содержат более двух членов. Для этой цели вызывается метод Соппс (), который является методом расширения и реализуется для всех объектов типа 1нппвегаь|е. Он возвращает количество элементов в последовательног сти.

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

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

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

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее