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

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

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

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

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

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

Для этой цели служит еще один метод обработки строк, называемый тосьаглггау () и возвращающий массив, содержащий символы в строке. Полученный результат присваивается переменной спглггау, которая затем используется во вложенном операторе ггож для извлечения отдельных символов из массива. И наконец, полученные символы сортируются в запросе, и из них формируется результирующая последовательность. О Использовать оператор 1ес в месте с вложенным // оператором Ггоп. ивьпп зувоепп пв1пч зувпвж.ъгпЧ; 634 Часть(.

язык Сз с1авя Ьесоещо ( ясасьс чогб Мати() ( яггьпд [) яггя = ( "а1рьа", "ьега", "свища" // Сформировать запрос иа получение символов, // возвращаемых из строк в отсортированной // последовательности. Обратите виимаиие иа // применение вложенного оператора ггощ. чаг спгя = ггощ ягг 1п яггя 1ес спгаггау = ясг.тоСЬагаггау() ггощ сЬ 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есг ия) Глава )9.

'ь)п0 635 В этом варианте индекс последнего вхождения символа точки в строку присваивается переменной 1с)х. Данное значение затем используется в методе Вп)эзсг1пд П . Благодаря этому исключается необходимость дважды искать символ точки в строке. Обьединение двух последовательностей с помощью оператора 1о~п Когда приходится иметь дело с базами данных, то зачастую требуется формировать последовательность, увязывающую данные из разных источников. Например, в Интернет- магазине может быть организована одна база данных, связывающая наименование товара с его порядковым номером, а другая база данных, связывающая порядковый номер товара с состоянием его запасов на складе. В подобной ситуации может возникнуть потребность составить список, в котором состояние запасов товаров на складе отображается по их наименованию, а не порядковому номеру.

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

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

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

И наконец, в данной программе создается класс тевр с двумя полями: строковым (зггупд) и булевым (Ьоо«). В объектах этого класса будут храниться результаты запроса. В этом запросе оператор «оуп используется для получения списка, в котором наименование товара связывается с состоянием его запасов на складе. // Продемонстрировать применение оператора «оьп. пяъпд Вуясевл пя1пд Вуятев.ььпд; О Класа, связывающий наименование товара с // его порядковым номером. 636 Часть!. язык С» с1авя 1кев ( риЬ11с якк1пс Мазе ( сект яект ) риЬ11с Тпс 1кевнивЬег ( фест яекк риЬ11с 1кев(якгфпд и, 1пк Тпив) ( ыаве = пт 1кевыивоег = алиям ) ) // Класс, связывающий наименование товара с // состоянием его запасов на складе.

с1аяя 1пБСосКБСакия ( риЬ11с Тпк 1кевнивЬек ( сект яект риЬ11с Ьоо1 1пзкосй ( Яект яект ) риЬ11с 1пакосКБСакия(1пс и, Ьоо1 Ь) ( 1кевнивюек = пт ТпЯСоса = Ьт ) // Класс, инкапсулирующий наименование товара и // состояние его запасов на складе. с1аяя Тевр ( риЬ11с яккапд Ыаве ( дев) яек) ) риЬ11с Ьоо1 ХпБСоск ( сект яек) ) с1аяв Поюпоево ( якакас чоаб Иа1п() ( 1вев[] Ткевя = ( пен 1кев(ЯКусачки", 1424), пен Ткев("Тиски", 7892), пен 1кев("Молоток", 8534), пен 1кев(8йила", 5411) // Сформировать запрос, объединяющий объекты // классов Ткев и 1пакосКБСакия для составления риЬ11с Тевр(яккапй и, Ьоо1 Ь) ( ыаве = и) 1ЬБСоса = Ь) ) ) 1пБСосКБСасия[] якакия11яс пен 1пБСоскзкакия(1424, пен 1паиосКЯСасия(7892, пен 1пзкоскБСакия(8534, пен 1пЯСосКЯСаиия(6411, )) ( якие), Га1яе), ские), ские) Глава!9, 1)МО 637 // списка наименований товаров и их наличия на // складе.

Обратите внимание на формирование // последовательности объектов класса Тевр. наг ЕпзоосКЬЕяС = Етов 1Сев Еп Егевя )огп еппту Еп ягагпяьсяг оп ЕСев.1СевновЬет еппа1я епсту.1СевншпЬет яе1есг пен Тевр(1Сев.маме, епгту.1пзтосК); Сопяо1е.нтссеьспе("Товар1сналичие1п")1 // Выполнить запрос и вывести его результаты. Еотеасп(Тевр С Еп ЕпЯСосКЪдяг) Сопяо1е.нт1Сеьспе(п(0) КС(1)", С.паве, С.1пЯСосК); Эта программа дает следующий результаг. Товар Наличие Кусачки Ттпе Тиски Га1яе Молоток Ттпе Пила Ттпе Для того чтобы стал понятнее принцип действия оператора Яофп, рассмотрим каждую строку запроса из приведенной выше программы по порядку. Этот запрос начинается, как обычно, со следующего оператора Егов: наг ЕпзгосКьгег = Етов Егев гп Егевя В этом операторе указывается переменная диапазона Есев для источника данных Есевя, который представляет собой массив объектов класса 1сев. В классе 1сев инкапсулируются наименование товара и порядковый номер товара, хранящегося на складе.

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

И наконец, оператор яе1есС возвращает объект класса тевр, содержащий наименование товара и состояние его запасов на складе. яе1есг пен Тевр(1Сев.паве, епгту.1пзгосК) Таким образом, последовательность результатов, получаемая по данному запросу, состоит из объектов типа Тевр. 638 часть (. язык Сз Рассмотренный здесь пример применения оператора боуп довольно прост. Тем не менее этот оператор поддерживает и более сложные операции с источниками данных.

Например', используя совместно операторы 1псо и боъп, можно создать г)н/пновое обьединение, чтобы получить результат, состоящий из первой последовательности и группы всех совпадающих элементов из второй последовательности. (Соответствующий пример будет приведен далее в этой главе.) Как правило, время и усилия, затраченные на полное освоение оператора боъп, окупаются сторицей, поскольку он дает возможность распознавать данные во время выполнения программы. Это очень ценная возможность. Но она становится еще ценнее, если используются анонимные типы, о которых речь пойдет в следующем разделе. Анонимные типы В версии СФ 3.0 внедрено новое средство, называемое анонииныз( нкипои и связанное непосредственно с Е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
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее