14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

привил<strong>е</strong>гии чл<strong>е</strong>нства<br />

Обобщ<strong>е</strong>нны<strong>е</strong> колл<strong>е</strong>кции<br />

Вы уж<strong>е</strong> вид<strong>е</strong>ли, что колл<strong>е</strong>кция мож<strong>е</strong>т состоять как из<br />

строк, так и из ботинок. Можно пом<strong>е</strong>стить туда ц<strong>е</strong>лы<strong>е</strong><br />

числа или произвольны<strong>е</strong> созданны<strong>е</strong> вами объ<strong>е</strong>кты.<br />

Им<strong>е</strong>нно поэтому класс L i s t явля<strong>е</strong>тся обобщ <strong>е</strong>нной<br />

колл<strong>е</strong>кци<strong>е</strong>й. В мом<strong>е</strong>нт <strong>е</strong>го создания нужно указать<br />

тип знач<strong>е</strong>ний, которы<strong>е</strong> могут храниться внутри.<br />

Эта запись н<strong>е</strong> означа<strong>е</strong>т, что вы добавля<strong>е</strong>т<strong>е</strong> букву Т.<br />

Она вс<strong>е</strong>го лииль показыва<strong>е</strong>т, что класс или инт <strong>е</strong>рф<strong>е</strong>йс<br />

мож<strong>е</strong>т работать со знач<strong>е</strong>ниями любого типа,<br />

(достаточно указать этот тип в скобках). Запись<br />

List означа<strong>е</strong>т, что колл<strong>е</strong>кция сод<strong>е</strong>ржит<br />

только эл<strong>е</strong>м<strong>е</strong>нты класса Shoe.<br />

_<br />

List name = new List()<br />

Класс<br />

KUM (^озволяю<br />

List<br />

и^м людш m<br />

оч<strong>е</strong>нь<br />

^ Т м о Т у т ^ а с с и в ы (плюс eu,e ко<strong>е</strong>-что).<br />

В .NET Framework сущ<strong>е</strong>ствуют обобщ<strong>е</strong>нны<strong>е</strong> инт<strong>е</strong>р)-<br />

ф<strong>е</strong>йсы, позволяющи<strong>е</strong> созданным вами колл<strong>е</strong>кциям<br />

работать с любыми типами. Класс L i s t р<strong>е</strong>ализу<strong>е</strong>т<br />

эти инт<strong>е</strong>рф<strong>е</strong>йсы, им<strong>е</strong>нно поэтому работа с колл<strong>е</strong>кци<strong>е</strong>й<br />

ц<strong>е</strong>лых чис<strong>е</strong>л практич<strong>е</strong>ски н<strong>е</strong> отлича<strong>е</strong>тся от работы<br />

с колл<strong>е</strong>кци<strong>е</strong>й объ<strong>е</strong>ктов класса Shoe.<br />

Уб<strong>е</strong>дит<strong>е</strong>сь самостоят<strong>е</strong>льно. Наб<strong>е</strong>рит<strong>е</strong> L i s t в ИСР,<br />

щ<strong>е</strong>лкнит<strong>е</strong> правой кнопкой мыши и выб<strong>е</strong>рит<strong>е</strong> команду<br />

Go То Définition. Вы увидит<strong>е</strong> объявл<strong>е</strong>ни<strong>е</strong><br />

класса L i s t . Он р<strong>е</strong>ализу<strong>е</strong>т н<strong>е</strong>сколько инт<strong>е</strong>рф<strong>е</strong>йсов:<br />

Отсюда б<strong>е</strong>рутся<br />

м<strong>е</strong>тоды RemoveAtÇj,<br />

IndexOfO w InsertQ.<br />

c l a s s L i s t < ' ^ :<br />

^ C o l 1 e с t io n < T > b<br />

fL ist< T ^ ^<br />

ÊEnum eraEXë> I L i s t ,<br />

Г I C o l l e c t i o n , l E n u m e r a b le ^<br />

0 означа<strong>е</strong>т, что в<br />

колл<strong>е</strong>кции L i s t могут храниться только<br />

объ<strong>е</strong>кгы класса F ro g .<br />

М<strong>е</strong>тод In d e x O f () опр<strong>е</strong>д<strong>е</strong>ля<strong>е</strong>т инд<strong>е</strong>кс<br />

для заданного объ<strong>е</strong>кта.<br />

Узнать колич<strong>е</strong>ство эл<strong>е</strong>м<strong>е</strong>нтов класса L i s t<br />

можно при помощи свойства Count.<br />

М<strong>е</strong>тод C o n t a in s () пров<strong>е</strong>ря<strong>е</strong>т<br />

колл<strong>е</strong>кцию на наличи<strong>е</strong> объ<strong>е</strong>ктов.<br />

fo r e a c h — это цикл, п<strong>е</strong>р<strong>е</strong>бирающий<br />

эл<strong>е</strong>м<strong>е</strong>нты колл<strong>е</strong>кции и выполняющий<br />

для каждого указанный код. Его<br />

синтаксис: fo r e a c h ( s t r i n g s<br />

i n S t r i n g L i s t ) . Вам н<strong>е</strong> нужно<br />

заботиться об инкр<strong>е</strong>м<strong>е</strong>нтном ув<strong>е</strong>лич<strong>е</strong>нии<br />

на <strong>е</strong>диницу, п<strong>е</strong>р<strong>е</strong>бор эл<strong>е</strong>м<strong>е</strong>нтов колл<strong>е</strong>кции<br />

выполня<strong>е</strong>тся автоматич<strong>е</strong>ски.<br />

352 глава 8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!