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

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

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

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

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

По существу, продолжение запроса воплощает в себе принцип построения нового запроса по результатам предыдущего. ПРИМЕЧАНИЕ Существуег также форма оператора гпго, предназначенная для использования вместе с оператором э'о1п, создающим групповое объединение, о котором речь пойдет далее в этой главе. Ниже приведен пример программы, в которой оператор 1пго используется вместе с оператором дгоир. Эта программа является переработанным вариантом предыдущего примера, в котором список веб-сайтов формируется по имени домена самого верхнего уровня.

А в данном примере первоначальные результаты запроса сохраняются в переменной диапазона ыя и затем отбиракзтся для исключения всех групп, состоящих менее чем из трех элементов. 658 Часть (. Язык б№ // Использовать оператор гпго вместе с оператором отпор. оягпо Яуягеи( оядпц Яуягеы.Ь1пй) с1азя 1пгооеио ( ягасьс чогд Магп() ( ясг1по(] неЬядсея = ( "Ьянажеа.сои", "Ьянаиев.пег", "Ьянаиес.пес", "ЬянатеР.сои", "ЬянатеЕ.ого", "Ьянаиет.ого", ''Ьянамео.сч", "Ьянатен.пес", "Ьянаие1.сч" ): // Сформировать запрос на получение списка веб-сайтов, группируемых // по имени домена самого верхнего уровня, но выбрать только те // группы, которые состоят более чем из двух членов. // Здесь ня — зто переменная диапазона для ряда групп, // возвращаемях при выполнении первой половины запроса.

чаг неЬАддгя = 1гот аддг гп неЬягкея иЬеге аддг.саяс1пдехОЕ('.') != -1 отпор аддг Ьу аддг.зпЬяог1по(аддг.Ьаяо1пдехОГ('.')) гого уя нЬеге ня.Сопит() > 2 яе1есг ня( Выполнить запрос и вывести его результаты. Сопяо1е.игггеьгпе("Домены самого верхнего уровня "с более чем двумя членами.

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

Обратите особое внимание в данном примере программы на следующую последовательность операторов в формируемом запросе. дгоор аддг ьу аддг.япьягггпс(аддг.ьаяг1пдехое('.')) 1пго ня ИЬеге ня.Соппг() > 2 ве1есс ня; Глава 19. (1())Я 659 Сначала результаты выполнения оператора дгопр сохраняются как временные для последующей обработки оператором ыЬеге. В качестве переменной диапазона в данный момент служит переменная ыз.

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

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

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

И наконец, полученные символы сортируются в запросе, и из них формируется результирующая последовательность. // Использовать оператор 1ег з месте с вложенным оператором Гсов. пя1пэ Яуягевг ияьпэ Буяяев.шпйг с1аяя Ьесбево ( ясапьс чоьс( Ма1п() ( ясг1пэ() ясгя = ( "а1рпа", "Ьепа", "давва" // Сформировать запрос на получение символов, возвращаемых из !/ строк з отсортированной последовательности. Обратите внимание на применение вложенного оператора гсов. чаг спгя = Егов япг 1п ясгя 1ес сьгасгау = ягг.тоепагяггау() 660 Часть!. Язык С(( Глот сЬ тп сЬтАггау отбегЬУ сп яе1ест сЬг сопяо1е.хт1теыпе("отдельные символы, отсортированные по порядку:") 1/ выполнить запрос и яызести его результаты. Гогеасп(спят с 1п сЬтя) Сопяо1е.иг1яе(с + " "); Сопяо1е.иг1теььпе()г ) ) Вот к какому результату приводит выполнение этой программы.

Отдельные символы, отсортированные по порядку: а а а а а Ь е Ч Ь 1 т ы р т Обратите внимание в данном примере программы на то, что в операторе 1ес переменной сЬгАтта у присваивается ссылка на массив, возвращаемый методом зсг. ТоСЬагАггау () . 1ет сптягтау = ятт.тоспагятгау() После оператора 1ет переменная СЬгАггау может использоваться в остальных операторах, составляющих запрос.

А поскольку все массивы в СФ преобразуются в тип 1ЕппыегаЬ1е<Т>, то переменную СЬгАгга у можно использовать в качестве источника данных для запроса во втором, вложенном операторе 1 топь Именно это и происходит в рассматриваемом здесь примере, где вложенный оператор Тгоы служит для перечисления в массиве отдельных символов, которые затем сортируются по нарастающей и возвращаются в виде конечного результата. Оператор 1ег может также использоваться для хранения неперечислимого значения. В качестве примера ниже приведен более эффективный вариант формирования запроса в программе 1пго()еыо из предыдущего раздела.

тат неЬАббгя = Ггоы аббг 1п иеЬя1тея 1ет 1бх = аббг.Ьаятгпбекст('.') нЬеге тбх (= -1 дтоср аббт Ьу аббг.випясггпдмбх) того ня нпете ня.Сопит() > 2 яе1ест няг В этом варианте индекс последнего вхождения символа точки в строку присваивается переменной 1бх. Данное значение затем используется в методе ЕпЬз Сгупгг () . Благодаря этому исключается необходимость дважды искать символ точки в строке. Объединение двух последовательностей с помощью оператора 1охтт Когда приходится иметь дело с базами данных, то зачастую требуется формировать последовательность, увязывающую данные из разных источников. Например, Глава 19. (.((с(() 661 в Интернет-магазине может быть организована одна база данных, связывающая наименование товара с его порядковым номером, и другая база данных, связывающая порядковый номер товара с состоянием его запасов на складе. В подобной ситуации может возникнуть потребность составить список, в котором состояние запасов товаров на складе отображается по их наименованию, а не порядковому номеру.

Для этой цели придется каким-то образом "увязать" данные из двух разных источников (баз данных). И это нетрудно сделать с помощью такого средства 1.1(с(Я, как оператор з о).и. Ниже приведена общая форма оператора > от и (совместно с оператором ггоы). ггои переменная диапазона А 1п источник данных А )оьп переменная диапазона В ьп источник данных В оп переменная диапазона А.свойство ечса1я переменная диапазона В.свойство Применяя оператор з овп, следует иметь в виду, что каждый источник должен содержать общие данные, которые можно сравнивать. Поэтому в приведенной выше форме этого оператора источник данных А и источник данных В должны иметь нечто общее, что подлежит сравнению.

Сравниваемые элементы данных указываются в части оп данного оператора. Поэтому если переменная диапазона А. снойстни и переменная диапазона А. свойство равны, то эти элементы данных "увязываются" успешно. По существу, оператор з овп выполняет роль своеобразного фильтра, отбирая только те элементы данных, которые имеют общее значение. Как правило, оператор з овп возвращает последовательность, состоящую из данных, полученных из двух источников. Следовательно, с помощью оператора з о1п можно сформировать новый список, состоящий из элементов, полученных из двух разных источников данных. Это дает возможность организовать данные по-новому. Ниже приведена программа, в которой создается класс 1сепь инкапсулирующий наименование товара и его порядковый номер.

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

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

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

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