. Стиллмен, Дж. Грин - Изучаем 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>р сортировки<br />
%<br />
Способы copmupoßku<br />
Д ля ко л л <strong>е</strong> к ц и й сущ <strong>е</strong>ству<strong>е</strong>т сп <strong>е</strong> ц и а л ь н ы й в с т р о <strong>е</strong> н н ы й в .N E T<br />
F ra m e w o rk и н т<strong>е</strong> р ф <strong>е</strong> й с, п о зв о л я ю щ и й создать о тд <strong>е</strong> л ь н ы й класс для<br />
с о р т и р о в к и со ста в л я ю щ и х объ<strong>е</strong>кта L is t < T > . Р <strong>е</strong> а л и з у я и н т <strong>е</strong> р ф <strong>е</strong> й с<br />
IC o m p a r e r < T > , в ы объясня<strong>е</strong>т<strong>е</strong> к о л л <strong>е</strong> кц и и , ка ким способом н у ж н о<br />
уп о р я д о ч и ть <strong>е</strong><strong>е</strong> сод<strong>е</strong>рж им о<strong>е</strong>. Задача в ы п о л н я <strong>е</strong> тся ср<strong>е</strong>дствам и м <strong>е</strong>тода<br />
C om pare ( ) , к о т о р ы й б <strong>е</strong>р<strong>е</strong>т п а р ам <strong>е</strong>тры двух о б ъ <strong>е</strong> кто в х и у и возвращ<br />
а<strong>е</strong>т ц<strong>е</strong>ло<strong>е</strong> число. Е сли х м <strong>е</strong>ньш <strong>е</strong>, ч<strong>е</strong>м у, возвращ а<strong>е</strong>тся о тр и ц а <br />
т<strong>е</strong> л ьн о<strong>е</strong> число. В случа<strong>е</strong> и х рав<strong>е</strong>нства возвращ а<strong>е</strong>тся ноль. Н у а <strong>е</strong>сли<br />
X больш <strong>е</strong>, ч<strong>е</strong>м у, буд<strong>е</strong>т возвращ <strong>е</strong>но п о л о ж и т<strong>е</strong> л ь н о <strong>е</strong> чи сло.<br />
В о т п р и м <strong>е</strong> р о б ъ я вл<strong>е</strong>ния класса, ср а в н и ваю щ <strong>е</strong> го о б ъ <strong>е</strong> кты D u c k п о<br />
разм<strong>е</strong>ру. Д обавьт<strong>е</strong> э то т класс к сво<strong>е</strong>м у про<strong>е</strong>кту,<br />
з<br />
f r “ “<br />
сортиру<strong>е</strong>мых объ<strong>е</strong>ктов- Duck<br />
Способ сортировки<br />
зависит от способа<br />
р<strong>е</strong>ализации<br />
инт<strong>е</strong>рф<strong>е</strong>йса<br />
IComparer.<br />
\<br />
class DuckComparerBySize : IComparer<br />
{<br />
public int Compare (Виск'^хГвис^^^Т^<br />
{<br />
м <strong>е</strong> т о д<br />
ц<strong>е</strong>ло<strong>е</strong> им<strong>е</strong>ло<br />
Тип сравнива<strong>е</strong>мых<br />
знач<strong>е</strong>ний вс<strong>е</strong>гда буд<strong>е</strong>т<br />
совпадать.<br />
л<br />
О т рицат <strong>е</strong>льно<strong>е</strong> число означа<strong>е</strong>т,<br />
что X долж<strong>е</strong>н ст оят ь п<strong>е</strong>р<strong>е</strong>д у,<br />
т ак как х «м<strong>е</strong>ньил<strong>е</strong>, ч<strong>е</strong>м » у.<br />
p означа<strong>е</strong>т совпад<strong>е</strong>ни<strong>е</strong><br />
р « м <strong>е</strong> р о 6<br />
^ ^ с д о в а т ь зд<br />
до л ж <strong>е</strong>н<br />
У-<br />
Это м<strong>е</strong>тод вывода уток<br />
в вид<strong>е</strong> колл<strong>е</strong>кции List.<br />
p u b l i c s t a t i c v o id P rin tD u c k s(L ist< D u c k > du ck s)<br />
{<br />
fo r e a c h (Duck duck i n du ck s)<br />
C o n s o le .W r it e L in e (duck. S i z e . T o S t r i n g ()<br />
C o n s o le .W r it e L in e ( "Утки к он чи л и сь!" );<br />
Добавьт<strong>е</strong> м<strong>е</strong>тод PnntPucks<br />
в класс Program, чтобы<br />
об<strong>е</strong>сп<strong>е</strong>чить вывод данных.<br />
\<br />
Л Обновит<strong>е</strong> м<strong>е</strong>тод MainQ<br />
таким образом, чтобы<br />
он вызывался до и посл<strong>е</strong><br />
сортировки.<br />
+ "-дюймов " + d u c k .K in d .T o S t r in g O )<br />
360 глава 8<br />
Ф