. Стиллмен, Дж. Грин - Изучаем 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>зультатов запроса<br />
В ы уж <strong>е</strong> зна<strong>е</strong>т<strong>е</strong>, ч т о L IN Q п озволя<strong>е</strong>т разбивать<br />
р<strong>е</strong>зультаты запроса на гр у п п ы , та к как и м <strong>е</strong> н н о<br />
это вы д<strong>е</strong>лали в сим улятор<strong>е</strong> улья. П о с м о тр и м<br />
бол<strong>е</strong><strong>е</strong> п о д р о б н о на то , как это работа<strong>е</strong>т.<br />
va r beeGroups =<br />
Н ачало запроса н и ч <strong>е</strong> м н<strong>е</strong> отл ича<strong>е</strong>тся о т д р у ги х —<br />
вы извл<strong>е</strong>ка<strong>е</strong>т<strong>е</strong> отд <strong>е</strong> л ьны х пч<strong>е</strong>л из ко л л <strong>е</strong> к ц и и<br />
w o r l d .B e e s объ<strong>е</strong>кта L i s t < B e e > .<br />
from be e in world.Bees<br />
< ^ o u p ^ e e b y b e e .Currentstate<br />
into be eGroup<br />
orderby be e G r o u p .Ke y<br />
© Сл<strong>е</strong>дую щ ая стр о ка запроса со д <strong>е</strong> р ж и т н о <br />
во<strong>е</strong> клю ч <strong>е</strong> во<strong>е</strong> слово group. О н о п р и к а з ы <br />
ва<strong>е</strong>т запросу возвращ ать группы пч<strong>е</strong>л. То<br />
<strong>е</strong>сть вм <strong>е</strong>сто о д н о й посл <strong>е</strong>доват<strong>е</strong>льности<br />
у нас буд<strong>е</strong>т ц <strong>е</strong> л ы й набор. З апись group<br />
b ee by b e e . C u rren tsta te го в о р и т, ч то<br />
пч<strong>е</strong>л н у ж н о р а зб и ть на гр у п п ы в со о тв <strong>е</strong> т<br />
с т в и и со свойством C u r r e n t s t a t e . Н у и<br />
н а ко н <strong>е</strong> ц , м ы указыва<strong>е</strong>м им я н о в ы х гр уп п :<br />
in to beeGroup.<br />
select beeGroup;<br />
Т <strong>е</strong>п<strong>е</strong>рь н у ж н о п р и п о м о щ и кл ю ч <strong>е</strong> <br />
в о го слова s e l e c t указать, ка ко й<br />
р<strong>е</strong>зультат возвращ а<strong>е</strong>т запрос. В данном<br />
случа<strong>е</strong> указы ва<strong>е</strong>тся им я гр у п п ы :<br />
s e l e c t beeGroup;<br />
Т<strong>е</strong>п<strong>е</strong>рь, когда гр у п п ы го т о в ы , и м и м о ж н о<br />
управлять. Н а п р и м <strong>е</strong> р , п р и п о м о щ и пр<strong>е</strong>длож<br />
<strong>е</strong> н и я<br />
o r d e r b y у п о р я д о ч и ть и х п о знач<strong>е</strong>н<br />
и я м п <strong>е</strong> р <strong>е</strong> ч и сл <strong>е</strong> н и я C u r r e n t s t a t e (Idle,<br />
F l y i n g T o F l o w e r и т. п .). С тр о ч к а orderby<br />
beeGroup. Key с о р ти р у <strong>е</strong> т посл<strong>е</strong>доват<strong>е</strong>льности<br />
п о ключу, в кач<strong>е</strong>ств<strong>е</strong> к л ю ч а в д анном случа<strong>е</strong><br />
буд<strong>е</strong>т использоваться сво й ств о C u r r e n t s t a t e .<br />
Т йк как пч<strong>е</strong>лы группировались<br />
по сосплоянию, и м <strong>е</strong> н н о <strong>е</strong>го мы<br />
укаж<strong>е</strong>м в кач<strong>е</strong>ств<strong>е</strong> ключа.<br />
j<br />
currentstate = FlyingToFlower<br />
Обратит<strong>е</strong> внимани<strong>е</strong>, что<br />
запрос возвраща<strong>е</strong>т н<strong>е</strong><br />
отд<strong>е</strong>льных пч<strong>е</strong>л, а их грцппы.<br />
дальш<strong>е</strong> ► 683