. Стиллмен, Дж. Грин - Изучаем 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.
UNQ<br />
Пр<strong>е</strong>дАО)к<strong>е</strong>ни<strong>е</strong> join<br />
Д ж и м м и собрал ц<strong>е</strong>лую колл <strong>е</strong> кц и ю ко м и ксо в и хот<strong>е</strong>л бы ср а внить ц<strong>е</strong>ны на н и х с ц<strong>е</strong>нам и в каталог<strong>е</strong> Гр<strong>е</strong>га,<br />
ч т о б ы п о н я ть , н<strong>е</strong> п<strong>е</strong>р<strong>е</strong>платил л и он. Д ля записи своих расходов о н создал класс P u r c h a s e с двумя<br />
а втом атич<strong>е</strong>ски м и свойствам и I s s u e и Price. П <strong>е</strong> р <strong>е</strong> ч<strong>е</strong>нь куп л <strong>е</strong> н н ы х им ко м и ксо в находится в колл<strong>е</strong>кц ии<br />
L i s t < P u r c h a s e > , ко торая назы ва<strong>е</strong>тся p u r c h a s e s . К а к ж <strong>е</strong> <strong>е</strong>му т<strong>е</strong> п<strong>е</strong>рь осущ <strong>е</strong>ствить сравн<strong>е</strong>ни<strong>е</strong> с ц<strong>е</strong>нам и<br />
из каталога Гр<strong>е</strong>га?<br />
П р <strong>е</strong> д л о ж <strong>е</strong> н и <strong>е</strong> j o i n п о з в о л и т с к о м б и н и р о в а т ь д а н н ы <strong>е</strong> и з д в у х к о л л <strong>е</strong> к ц и й в <strong>е</strong> д и н ы й запрос. Э то д<strong>е</strong>ла<strong>е</strong>тся<br />
пут<strong>е</strong>м п о и ска в п <strong>е</strong> р в о й к о л л <strong>е</strong> кц и и со в падаю щ и х з н а ч <strong>е</strong> н и й со в то р о й . ( L IN Q д<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> н и я f r o m вм <strong>е</strong>сто к р и т <strong>е</strong> р и я<br />
о тб о р а р<strong>е</strong>зультатов н а п и ш и т<strong>е</strong> :<br />
j o i n пат<strong>е</strong> i n c o lle c tio n<br />
И м я пат<strong>е</strong> назнача<strong>е</strong>тся чл<strong>е</strong>нам , к о то р ы <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> н и и where.<br />
Ажимми присо<strong>е</strong>диня<strong>е</strong>т<br />
к комиксам из<br />
колл<strong>е</strong>кции purchases<br />
список кцпл<strong>е</strong>ннш им<br />
комиксов.<br />
Аанны<strong>е</strong> Д ж « м м и<br />
fS u d e колл<strong>е</strong>кции объ<strong>е</strong>ктов Purchase,<br />
которая иазыва<strong>е</strong>тсй purchases.<br />
class Purchase {<br />
public int Issue<br />
{ get; set; }<br />
public decimal Price<br />
{ get; set; )<br />
)<br />
О<br />
Зат<strong>е</strong>м<br />
сл<strong>е</strong>дую т п р <strong>е</strong> д л о ж <strong>е</strong> н и я<br />
w h e r e и orderby. Т ак ка к в<br />
р<strong>е</strong>зультат о б ы ч н о тр<strong>е</strong>бу<strong>е</strong>тся<br />
в к л ю ч и ть часть д а н н ы х из<br />
о д н о й ко л л <strong>е</strong> кц и и , а часть из<br />
д р у го й , в ко н ц <strong>е</strong> использу<strong>е</strong>тся<br />
пр<strong>е</strong>длож <strong>е</strong> н и <strong>е</strong> s e l e c t<br />
new,<br />
создаю щ <strong>е</strong><strong>е</strong> п ользо ват<strong>е</strong>льски й<br />
на б о р р<strong>е</strong>зультатов п р и пом о <br />
щ и а н о н и м н о го ти п а .<br />
o n c o m i c . I s s u e<br />
e q u a ls p u r c h a s e .I s s u e<br />
Посл<strong>е</strong> пр<strong>е</strong>длож<strong>е</strong>ния<br />
select new в фигурных<br />
скобках п<strong>е</strong>р<strong>е</strong>числ<strong>е</strong>ны<br />
данны<strong>е</strong>,, которы<strong>е</strong> сл<strong>е</strong>ду<strong>е</strong>т<br />
вклночить в р <strong>е</strong> -<br />
зильтат.<br />
Д обавим пр<strong>е</strong>длож <strong>е</strong> н и <strong>е</strong> o n , указы<br />
ваю щ <strong>е</strong><strong>е</strong> сп особ о б ъ <strong>е</strong>дин<strong>е</strong>ния<br />
ко л л <strong>е</strong> кц и й . Зат<strong>е</strong>м укаж <strong>е</strong>м им я п<strong>е</strong>рв<br />
о й к о л л <strong>е</strong> кц и и , клю ч<strong>е</strong>во<strong>е</strong> слово<br />
e q u a ls и им я в т о р о й ко л л <strong>е</strong> кц и и .<br />
s e l e c t new { c o m i c . N a m e ,<br />
c o m i c . I s s u e , p u r c h a s e .P r i c e }<br />
Iqcmo = rI пят<strong>е</strong> = “Johnnv America" I Price = 3600<br />
Issue = 1 ^ lame = “Rock and Roll” Price = 375<br />
1Issue = 57 name = “Hippie Madnless” Price = 13215 L<br />
дальш<strong>е</strong> ► 687