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

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

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

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

вязнем Яуясевг иядпд Буясев.со11есггопя/Яелеггс; В приведенном ниже примере программы демонстрируется применение класса 11п)себ11яс<Т>. 968 Часть П. Библиотека С() с1аяя ОепаьпкедЬгясбеюо ( яяас1с чо1д Ма1п() ( // Создать связный список. ььпкедьаяг<сдаг> 11 = пен ьтп)седь1яг<сьаг>(); сопяо1е.хг1геьлпе("исходное количество элементов в списке: " + 11.социо)," Сопяо1е.иггсеЬ1пе(); Сопяо1е.иг1сеЬ1пе("Добавить в список 5 элементов"); // Добавить элементы в связный список.

11.АсЫЕ1гяг('А')с 11.лддрггяс('В'); 11.лдсрггяг('С'); 11.АсЫГггяс('Р'); 11.Аддр1гяя('Е')С Сопяа1е.ИггсеЬгпе("Количество элементов в списке: " + 11.Сопля)с О Отобразить связный список, обойдя его вручную. ЬьпКедЬ>ясиоде<слаг> поде; Сопяо1е.Иг1ге("Отобразить содержимое списка по ссылкам: ")) гог(поде = 11.Р1гяг; поде )= пц11; поде = поде.иехс) Сопяо1е.иггяе(поде.уа1це + " "); Сопяо1е.иг1сеЬ1пе("1п"); // Отобразить связный список, обойдя его в цикле тогеась.

Сопяо1е.иг1ге("Отобразить содержимое списка в цикле тогеасьс ") тогеась(сьаг сд Ьп 11) Сопяо1е.иг1яе(сь + " "); сопяо1е.иг1сеьтпе("1п")с // Отобразить связньсй список, обойдя его вручную в обратном направлении. Сопяо1е.иг1яе("Следовать по ссылкам в обратном направлении: "); гог(поде = 11.Ьаяя; поде )= пц11; поде = поде.ргечгоця) Сопяо1е.иггбе(поде.уа1це + " "); Сопяо1е.иг1геЬ1пе("1п")с Удалить из списка два элемента. Сопяо1е.иг1яеЬ1пе("Удалить 2 элемента из списка") // Удалить элементы из связного списка.

11.йеюоче('С')) 11.реюоче('А'); Сопяо1е.иг1сеЬ1пе("Количество элементов в списке: " + 11.Соцпс); // Отобразить содержимое видоизмененного списка в цикле согеасл. Глава 26. Коллекции, перечислители и итераторы 969 Сопяо1е.ит1те("Содержимое списка после удаления элементов: "); Готеасв(сват св Тп 11) Сопяо1е.ит1пе(си + " ")( Сопяо1е.итьпеЬЬпе("Хп"); // Добавить три элемента в конец списка. 11.АобЬаяп('Х')1 11.лббьаят('т'); 11.ИЫЬаяп('г'); Сопяо1е.ит1пе("Содержимое списка после ввода элементов: "); тотеасв(сват св ьп 11) Сопяо1е.итьбе(сП т " ")1 Сопяо1е.ит1теьтпе("1п")( ) Ниже приведен результат выполнения этой программы. Исходное количество элементов в списке: О Добавить в список 5 элементов Количество элементов в списке: 5 Отобразить содержимое списка по ссылкам: Е 0 С В А Отобразить содержимое списка в цикле Гохеасв: Е О С В А Следовать по ссылкам в обратном направлении: А В С Р Е удалить 2 элемента из списка Количество элементов в списке: 3 Содержимое списка после удаления элементов: Е Р В Содержимое списка после ввода элементов.

"Е Р В Х т г Самое примечательное в этой программе — это обход списка в прямом и обратном направлении, следуя по ссылкам, предоставляемым свойствами Хехп и Ргеулоця. Двунаправленный характер подобных связных списков имеет особое значение для приложений, управляющих базами данных, где нередко требуется перемещаться по списку в обоих направлениях. Класс Мссуопаху<ТКеу, ТЧа1це> Класс РЬСС1опагу<ТКеу, ТЧа1це> позволяет хранить пары "ключ — значение" в коллекции как в словаре.

Значения доступны в словаре по соответствующим ключам. В этом отношении данный класс аналогичен необобщенному классу наяЬсаЬ1е. В классе РЬСЬ1опагу<ТКеу, ТЧа1це> реализуются интерфейсы 1РЬСС1опату, 1Р1СС1опагу<ТКеу, ТЧа1це>, 1СО11есс1оп, 1СО11есп1оп<КеуЧа1цера1г<ТКеу, ТЧа1це», 1Епцп(егаЬ1е, 1ЕпцтегаЬ1е<КеуЧа1цера1г<ТКеу, ТЧа1це», 1Яег1а11гаЬЬе и 1Реяет1а11гап1опСа11Ьаск.

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

Если размер словаря заранее известен, то, указав емкость создаваемой коллекции, можно исключить изменение размера словаря во время выполнения, что, как правило, требует дополнительных затрат вычислительных ресурсов. В классе Рдст1опату<ТКеу, ТЧа1ие> определяется также ряд методов. Некоторые наиболее часто используемые методы этого класса сведены в табл. 25.17. Таблица 25.17. Наиболее часто используемые методы, определенные в в(ассе РдсЬдопаку<ТКеу, ТЧа1це> Метод Описание риЬ11с иодс1 ча1ие) дс)с((тКеу )геу, тча1ие добавляет в словарь пару "ключ-значение", определяемую параметрами )геу и иа1ие. Если ключ )геу уже находится в словаре, то его значение не изменяется, и генерируется ис- КЛЮЧЕНИЕ ДтпижепСЕхсерС1оп Возвращает логическое значение сгие, если вызывающий словарь содержит объект )геу в качестве ключа; а иначе — логическое значение Та1яе сопсадпяча1ие (тча1ие Возвращает логическое значение стие, если вызывающий словарь содержит значение иа1ие; в противном случае — логическое значение Та1яе кевоче (ТКеу )геу) Удаляет ключ )геу из словаря.

При удачном исходе операции возвращается логическое значение сгие, а если ключ )геу отсутствует в словаре — логическое значение Та1яе риЬ11с Ьоо1 )сеу) риЬ11с Ьоо1 иа1ие) риЬ11с Ьоо1 Свойство Описание риЬ11с 1Ег(иа11СУСогиратет<ТКеу> Соглратег ( дет; риЬ11с Р1ст1опату<ТКеу, ТЧа1ие>. КеуСо11естдоп Кеуя ( Чегг ) риЬ11с Р1сгуопагу<ТКеу, ТЧа1ие>. Ча1иеСо11естдоп Ча1иея ( оег) Получает метод сравнения для вызывающего словаря Получает коллекцию ключей Получает коллекцию значений Кроме того, в классе Р1сС1опагу<ТКеу, ТЧа1ие> определяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются.

Эти свойства приведены ниже. Глава 25. Комекции, перечислитеви и игераторы 971 Следует иметь в виду, что ключи и значения, содержащиеся в коллекции, доступны отдельными списками с помощью свойств Кеуя и Ча1цея. В коллекциях типа Ргссгопагу<ТКеу, ТЧа1це>.КеуСо11ессгопи Ргсс1опагу<ТКеу, ТЧа1це>. Ча1цеСо11есг1оп реализуются как обобщенные, так и необобщенные формы интерфейсов 1Со11ессгоп и 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СГ1опагу<ТКеу, ТЧа1це> в отсортированном порядке. В приведенном ниже примере демонстрируется применение класса Ргсс1опагу<ТКеу, ТЧа1це>. !/ Продемонстрировать применение класса обобщенной коллекции Рьсс1опагу<ТКеу, Тна1це>. цягпч Буясещ; цягпч Яуясещ.со11ессгопв.оепег1с; с1аяя БеппьсгьапагуОеяю ( ягаггс нояб Магп() ( УУ Создать словарь для хранения имен и фамилий 77 работников и их зарплаты. Ргссгопагу<ясггпч, боцЫе> сьсс = пеи 01сггопагу<ягггпч, боцЫе>()( // Добавить элементы в коллекцию.

б1сс.йбб("Батлер, Джон", 73000); бгсг.дбб(5цварц, Сара", 59000); б1сс.лбб("Пайк, Томас", 45000); бьсс.йбс(("фрэнк, Эд", 99000)7 972 Часть П. Библиотека О№ Получить коллекиию ключей, т.е. фамилий и имен. 1СО11ЕСС1ОП<ВСГГО9> С = б1СГ.КЕУЗГ /! Испольэовать ключи лля получения значений, т.е. зарплаты. Гогеасл(всг1пч эсг гп с) Сопво1е.нг1сеЬьпе("(О), зарплата: (1:С)", всг, бгсс(зсг)); Ниже приведен результат выполнения этой программы. Батлер, Пжон, зарплата: 573,000.00 Шварц, Сара, зарплата: 959,000.00 Пайк, Томас, зарплата: 545,000.00 Фрэнк, Эл, зарплата: 599,000.00 КлассЯокцебРТсЕТопагу<ТКеу, ТЧа1пе> В коллекции класса БогтебР1СС1опагу<ТКеу, ТЧа1ие> пары "ключ-значение" хранятся таким же образом, как и в коллекции класса Р1СС1опагу<ТКеу, ТЧа1ие>, за исключением того, что они отсортированы по соответствующему ключу.

В классе яогтебР1ст1опагу<ТКеу, ТЧа1ие> реализуются интерфейсы 1Р1СС1опагу, 101сс1опагу<ткеу, тча1ие>, 1со11есс1оп, 1со11есс1оп<кеуча1иера1г<ткеу, ТЧа1ие», 1ЕпивегаЬ1е и 1ЕпитегаЬ1е<КеуЧа1иерадг<ТКеу, ТЧа1ие». В классе яогсебР1сс1опагу<ткеу, тча1ие> предоставляются также следующие конструкторы. риЫгс Яогсеб01сггопагу() риыгс яоггебР1сг1опагу(101сг1опагу<ткеу, тча1ие> ббсгхопагу) риЫ1с Боггеб01си1опагу(1союрагег<ткеу> союрагег) риыгс БогсебРгсггопагу(1рьсг1опагу<ткеу, тча1ие> бхсс1опагу, 1Союрагег<ТКеу> соирагег) Таблица 28.18. Наиболее часто используемые методы, определенные в классе ЯогЬебР1СЬ1опагу<ТКеу, ТЧа1ие> Описание Метод Добавляет в словарь пару "ключ-значение", определяемую параметрами )сеу и иа1ие.

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

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

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

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