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

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

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

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

Используя несколько критериев, можно изменить на обратный порядок любой сортировки с помощью ключевого слова с)евсепс)фпд. Например, результаты следующего запроса будут выведены по убывающей остатков на счетах: наг асс1пго = тгож асс гп ассоопсв огоегьу х.ьавгнаме, х.гтгвгнаие, х.ва1апсе оевсепоьпч ве1есг асс) В этом случае список счетов вкладчиков по фамилии Джонс будет выглядеть так, как показано ниже. Джонс, Дженни Номер счета: 108СК, $10.98 Джонс, Ральф Джонс, Ральф Джонс, Ральф Как видите, теперь счета вкладчика по фамилии Ральф Джонс выводятся по убывающей: от самой большой до самой малой суммы остатка на счете.

Подробное рассмотрение оператора ве1ес~: Оператор ве1есс определяет конкретный тип элементов, получаемых по запросу. Ниже приведена его общая форма. ве1есс выражение Джонс, Ральф Джонс, Ральф Джонс, Ральф Номер счета: 843СК, $345.00 Номер счета: 543ММ, $5,017.40 Номер счета: 547СО, $34,955.79 Номер счета: 434СК, ($123.32) Номер счета: 454ММ, $987.13 Номер счета: 436СН, $1,923.85 Номер счета: 436С0, $1,923.85 Номер счета: 454ММ, $987.13 Номер счета: 434СК, ($123.32) 624 часть (. язык Сз В предыдущих примерах оператор зе1есС использовался для возврата переменной диапазона. Поэтому выражение в нем просто обозначало имя переменной диапазона.

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

цятпч Эуясеяп цяьпп эуяСев.ъсппт с1аяз Эе1ескпево ( зеаСсс чохе Иасп() ( с(оцЬ1е() пцвя = ( -10.0, 16.4, 12.125, 100.85, -2.2, 25.25, -3.5 ]> // Сформировать запрос на получение квадратньсч // корней всех положительных значений, содержащихся // в массиве пцвя. чаг япгаоокя = слов и хп пцвя нпеге и > 0 яе1есС Иакп.зпгк(п)к сопяо1е.нг1сеьтпе("кзадратные корни положительных значений, 1п" + "округленные до двух десятичных цифр:"); // Выполнить запрос и вывести его результаты. Гогеасп(с(оцЬ1е г фп япгноокя) Сопяо1е.игскеъспе("(О:4.44)", г)~ Эта программа дает следующий результат: Квадратные корни положительных значений, округленные до двух десятичных цифр: 4.05 3.48 10.04 5.02 В данном примере запроса особое внимание обратите на следующий оператор зе1есС: яегесс иась. эчгс (п) т Глава! 9.

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

Ниже приведена программа, демонстрирующая другое применение оператора яе1есс. В этой программе сначала создается класс ета11Аббгеяз, содержащий два свойства. В первом из них хранится имя адресата, а во втором — адрес его электронной почты. Затем в этой программе создается массив, содержащий несколько элементов данных типа Едпа11Аббгезя. И наконец, в данной программе получается список, состоящий только из адресов электронной почты, извлекаемых по запросу.

// Возвратить часть значения переменной диапазона. пя1по Яуясегм ояьпд Яувсез.Ь1пор с1авя Ека11Аббгеяя ( рпЬ11с ясг1по Нане ( Нес," яес; роЬ11с ясгьпд Аббгеяя ( оес; яес; ) риЬ11с Еиа11Аббгеяя(ясг1пд и, ясг1пд а) ( Нане = и; Аббгевв = а! ) ) с1аяя Яе1ессвезоу ( ягас1с чоьб Ма1п() ( Еыаь)кббгеяя[] аббгя = Г пеы еиа11Аббгеяя("герберт", "негьзнегьясь11бг.сов"), пеы Еза11Аббгеяв("том", "тоызНегЬЯсн11сс.сои"), пеы Еыа11Аббгеяя(асара", "Яагаэнегпзсп11бс.сои") )) // Сфорыировать запрос на получение адресов // электронной почты. чаг еАббгя = Ггоз епсгу ьп аббгя ве1есс епггу.Аббгеяя; Сопяо1е.игьсеЬ1пе("Адреса электронной почты.""); // Выполнить запрос и вывести его результаты.

Гогеасп(ягг1по я 1п еАббгв) Сопво1е.игьсевьпе(" " + в); Вот к какому результату приводит выполнение этой программы; 626 Часть ). язык Сз Алреса электронной почты: НегЬБНегЬБси11бс.сок токзНегЬБсЫ1бю сов ЯагаЗНегЬБсЫ1бс.сок Обратите особое внимание на следующий оператор зе1есьн зе1есс еисгу.кббгезз> Вместо полного значения переменной диапазона этот оператор возвращает лишь его адресную часть (Аббгезз). Это означает, что по данному запросу возвращается последовательность символьных строк, а не объектов типа Ека11Аббгезз. Именно поэтому переменная з указывается в цикле гогеасЬ как зггьпд. Ведь как пояснялось выше, тип последовательности результатов, возвращаемых по запросу, определяь-ся типом значения, возвращаемым оператором зе1есС.

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

Таким образом, типом последовательности результатов, возвращаемой оператором зе1есС, является класс Ева11Аббгезз, а не класс Сопгасг1пЕо, причем его объекты создаются во время выполнения запроса. // Использовать запрос лля получения поспелозатепьности // объектов типа Ека11Аббгеззез из списка объектов типа Сопсасс1пто. оз1пд Бузсек( озьпд Бузсекл виси с1азз Сопсасс1пго ( риЫас зсг1пд Нане ( Беса зес( рнЬ11с згг1пп Ека11 ( Беса зес; ) роЬ11с зсгьпд Рпопе ( Беса зеса ) роы1с сопгасг1пто(згг1пч п, зггьпч а, згг1по р) ( Нане = и; Ека11 = а; Риопе = р; ) ) с1азз Еиа11Аббгезз ( рпЬ11с зсг1пЧ Нане ( Нес," зеса ) риЬ11с зсг1пд Аббгезз ( Нес; зета ) риЫьс Еиа11Аббгезз(згг1пп п, зсг1пп а) ( Нане = и; Аббгезз = а; ) ) Глава (6.

>(Н0 627 с1азз Яе1есспеиоз ( згас1с чогб На1п() ( сопгасг1пго() сопгасгз = ( пен Сопсасс1пго("Герберт", "Негпзиегьзсп11бс.сои", "555-1010"), пеи Сопсасс1пго("том", "тои6НегЬЯсЬ11бс.сои", "555-1101"), пеи Сопсасс1пто( "Сара", "ЯагазиегпзсЬ11бс.сои", "555-0110") // С$ормирозать запрос на получение списка // объектов типа Еиа11Аббгезз. чаг етащпазс = ггои епсгу ъп сопсассз зе1есг пен еза11Аббгезз[епггу.наие, епггу.еиа11)в Сопзо1е.игасеьапе("Список адресов электронной почты:"); // Выполнить запрос и вывести его результаты.

Гогеасп(Еиа11Аббгезз е 1п еиа111изс) Сопзо1е.иг1се(1пе(" (О): (1)", е.Маме, е.йббгезз ); Ниже приведен результат выполнения этой программы. Список адресов электронной почты: Герберт: Негпзиегъзсь11бс.соы Том: тоы6НегЬЯспг1бс.сои Сара: БагазиегЬЯсЬ11бс.сои В данном запросе особое внимание обратите иа следующий оператор зе1есю зе1есг пеи еиа11Аббгезз (епггу.нане, епггу.еиа11) ) В этом операторе создается новый объект типа еыа11Аббгезз, содержащий имя и адрес электронной почты, получаемые из объекта типа сопгасс1пЕо, хранящегося в массиве сод гас гз. Но самое главное, что новые объекты типа Еыа11Аббгез з создаются в операторе зе1есг во время выполнения запроса.

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

// Использовать дза вложенных оператора ггои для О составления списка всех возможных сочетаний букв // А, В и С с буквами Х, т и 3. 628 Часть (. Язык Са цягпд яуягещт ця1пд Яуяяещ.птпс(т // Этот класс содержит результат запроса. с1аяя СЬгРагг ( рцЫгс сьаг Г1гягт рцЬ11с сЬаг Яесопбт рцЬ11с СЬграгг(сьаг с, сьаг с2) Р1ГЯГ = Ст Яесопб = с2( ) ) с1аяя Мц1Г1р1еггощя ( ясасгс чо1б Ма1п() ( сьаг[] сЬгя = ( 'А', 'В', 'С' ): спас[] спгя2 = ( 'Х', 'У', 'г' )т // В первом операторе тгощ организуется циклическое // обращение к массиву символов спгя, а во втором // операторе ггощ — циклическое обращение к // массиву символов спгя2. чаг раггя = тгощ сЫ гп сЬгя ггощ сп2 гп сЬгя2 яе1есс пеи СЬгратг(сЫ, сЬ2)т Сопяо1е.нг1се11пе("Все сочетания букв АВС и Хтг: ")т Гогеасп(чаг р 1п ра1гя) Сопяо1е.иг1гевьпе("(0) (1)", р.Г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
Средний доход
с одного платного файла
Обучение Подробнее