ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2025
Просмотров: 3252
Скачиваний: 1
Вывод программы прост и элегантен: |
|
|
|
|
|
|||||
Ищем в о з р а с т |
L i s a |
|
|
|
|
|
|
|
||
Возраст |
L i s a |
- |
10 |
|
|
|
|
|
|
|
Нажмите |
< E n t e r > |
д л я |
з а в е р ш е н и я п р о г р а м м ы . . . |
|
|
|
||||
В |
качестве |
о т с т у п л е н и я — |
интерфейс |
I L i s t описывает |
класс, |
предостав |
||||
л я ю щ и й целый |
индексатор |
в |
ф о р м е |
o b j e c t t h i s [ i n t ] . В |
С # |
имеется |
||||
также интерфейс |
I L i s t < T > , |
который |
позволяет заменить |
o b j e c t |
выбран |
|||||
н ы м вами т и п о м Т . Это устраняет необходимость преобразования типов из предыдущего примера .
Помните код функции M a i n ( ) , написанный при демонстрации самостоятельно раз работанного класса L i n k e d L i s t ? (Его можно найти в демонстрационной программе L i n k e d L i s t C o n t a i n e r на прилагаемом компакт-диске.) Вот его фрагмент:
p u b l i c s t a t i c v o i d M a i n ( s t r i n g [ ] a r g s )
{
/ / С о з д а е м к о н т е й н е р и д о б а в л я е м в н е г о т р и э л е м е н т а L i n k e d L i s t 1 1 с = n e w L i n k e d L i s t ( ) ;
/ / Д о б а в л я е м о б ъ е к т ы . . .
C o n s o l e . W r i t e L i n e ( " П р о х о д п о к о н т е й н е р у в р у ч н у ю " ) ; L i n k e d L i s t l t e r a t o r H i
=( L i n k e d L i s t l t e r a t o r ) 1 1 с . G e t E n u m e r a t o r ( ) ;
H i . R e s e t ( ) ;
w h i l e ( H i . M o v e N e x t ( ) )
{
s t r i n g s = ( s t r i n g ) H i . C u r r e n t ; C o n s o l e . W r i t e L i n e ( s ) ;
}
Данный код получает L i n k e d L i s t l t e r a t o r и использует его метод M o v e N e x t () и свойство C u r r e n t для обхода связанного списка. Однако С# 2.0 может упростить вам этот обход так, что вы получите перечисленные преимущества.
Вам не придется вызывать G e t E n u m e r a t o r () (и выполнять преобразование ти па результатов).
Вам не понадобится вызывать M o v e N e x t ( ) .
Вам не придется вызывать C u r r e n t и выполнять преобразование типа, возвра щаемого значения.
Вы сможете просто использовать f o r e a c h для обхода коллекции (С# сделает все остальное за вас).
Если быть честным, то f o r e a c h работает и для класса L i n k e d L i s t из этой гла вы. Это связано с наличием метода G e t E n u m e r a t o r ( ) . Но я все еще должен са мостоятельно писать класс L i n k e d L i s t l t e r a t o r . Новизна состоит в том, что вы можете пропустить при обходе часть вашего класса.
Глава 20. Работа с коллекциями |
469 |