14.02.2017 Views

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

сопоставь что угодно ч<strong>е</strong>му угодно<br />

Функциональность слобар<strong>е</strong>й<br />

С ловари во м н о го м н а п о м и н а ю т ко л л <strong>е</strong> кц и и . О н и ги б к и , п о зволяю т вам работа ть с д а н н ы м и<br />

п р о и з в о л ь н о го т и п а и и м <strong>е</strong> ю т м н о ж <strong>е</strong> ство в с тр о <strong>е</strong> н н ы х ф ун кц и й . Р ассм отрим о с н о в н ы <strong>е</strong> м <strong>е</strong>тод<br />

ы класса D i c t i o n a r y :<br />

^Добавл<strong>е</strong>ни<strong>е</strong> эл<strong>е</strong>м<strong>е</strong>нтов.<br />

Добавл<strong>е</strong>ни<strong>е</strong> осущ<strong>е</strong>ствля<strong>е</strong>тся пут<strong>е</strong>м п<strong>е</strong>р<strong>е</strong>дачи ключа и знач<strong>е</strong>ния м<strong>е</strong>тоду Add о .<br />

D i c t i o n a r y < s t r i n g , s t r i n g > m y D ic t io n a r y = new D i c t i o n a r y < s t r x n g , s t r i n g > { ) ;<br />

m y D ic t i0n ary.A dd(" K aK 0Ü -T0 ключ", " к а к о <strong>е</strong> -т о з н а ч <strong>е</strong> н и <strong>е</strong> " );<br />

^Поиск знач<strong>е</strong>ния по ключу.<br />

Самым важным при работ<strong>е</strong> со словар<strong>е</strong>м явля<strong>е</strong>тся просмотр знач<strong>е</strong>ний — собств<strong>е</strong>нно,<br />

за этим вы их там и хранит<strong>е</strong>. Для словаря D i c t lo n a r y < s t r in g , s t r i n g > ДОСТуП<br />

К знач<strong>е</strong>нию осущ<strong>е</strong>ствля<strong>е</strong>тся по ключу типа string, возвраща<strong>е</strong>т он так ж<strong>е</strong> строку.<br />

s t r i n g lo o k u p V a lu e = m y D ic t io n a r y [" к а к о й -т о к л ю ч " ];<br />

^Удал<strong>е</strong>ни<strong>е</strong> эл<strong>е</strong>м<strong>е</strong>нтов.<br />

Как и при работ<strong>е</strong> с объ<strong>е</strong>ктами L i s t , для удал<strong>е</strong>ния из словаря использу<strong>е</strong>тся м<strong>е</strong>тод<br />

Remove о . Достаточно п<strong>е</strong>р<strong>е</strong>дать <strong>е</strong>му ключ, как сам ключ и знач<strong>е</strong>ни<strong>е</strong> будут удал<strong>е</strong>ны.<br />

m y D ic t io n a r y . Remove (" к а к о й -т о к л ю ч " ); ^оизвольно<strong>е</strong>Толич<strong>е</strong>с^^^ 'лвчм<br />

♦получ<strong>е</strong>ни<strong>е</strong> списка ключ<strong>е</strong>й.<br />

Свойство K eys в комбинации с циклом f o r e a c h позволя<strong>е</strong>т получить п<strong>е</strong>р<strong>е</strong>ч<strong>е</strong>нь ключ<strong>е</strong>й<br />

словаря.<br />

f o r e a c h ( s t r i n g k e y i n m y D ic t io n a r y .K e y s ) { . . . } ;<br />

— ^ Клю чи о т н о с я т с я к свойствам словаря, ß рассматри-<br />

★ П о д с ч <strong>е</strong> т п а р . ^ ва<strong>е</strong>мом случа<strong>е</strong> они принадл<strong>е</strong>жат типу string, поэтому<br />

_ э т о набор строк.<br />

Свойство C ount возвраща<strong>е</strong>т число пар «ключ-знач<strong>е</strong>ни<strong>е</strong>», им<strong>е</strong>ющихся в словар<strong>е</strong>:<br />

int howMany = myDictionary.Covmt;<br />

Ключ u знач<strong>е</strong>ни<strong>е</strong> м огут принадл<strong>е</strong>)кать разным типам<br />

С л овари ф а к ти ч <strong>е</strong> ски ун и в<strong>е</strong>рса л ьн ы и м о гут сод<strong>е</strong>рж ать зн а ч <strong>е</strong> н и я л ю б ы х т и п о в (о т с т р о к до о б ъ <strong>е</strong>ктов).<br />

В о т п р и м <strong>е</strong> р словаря, в к о то р о м к л ю ч и о тн о с я тс я к т и п у in t, а знач<strong>е</strong>ния — к объ<strong>е</strong>ктам D u cli.<br />

D i= t i o n a r y < i n t , Duck> d u c k D ic t io n a r y = new D i c t i o n a r y < i n t , D u c k X ) ,<br />

u объ<strong>е</strong>кты, исполь- d u c k D ic t io n a r y .A d d (3 7 6 , new D uckO<br />

зуются в случаях { Kind = KindOf Duck. Mallard, Size = 15 >) ;<br />

присво<strong>е</strong>ния объ<strong>е</strong>ктам<br />

=> s ' •<br />

уникальных ид<strong>е</strong>нтификаторов.<br />

376 глава 8

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

Saved successfully!

Ooh no, something went wrong!