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> р <strong>е</strong> д вами п р и м <strong>е</strong> р с и н та ксиса L IN Q . О н в ы б и р а <strong>е</strong> т из м ассива т и п а i n t чи сл а м <strong>е</strong>ньш <strong>е</strong> 37 и располага<strong>е</strong>т<br />

и х в возрастаюш;<strong>е</strong>м порядк<strong>е</strong> . Д ля э т о го исп о л ьзую тся ч <strong>е</strong> ты р <strong>е</strong> п р <strong>е</strong> д л о ж <strong>е</strong> н и я (cla u se s), указы ваю щ и<strong>е</strong> п о ­<br />

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

int[] values = new int[] {О, 12, 44, 36, 92, 54, 13,<br />

var result = from v in values<br />

Этот запрос<br />

состоит из<br />

where V < 37 < — V<br />

Т о 7 Х й : Iro m , \ o r d e r b y V ^<br />

where, orderby j<br />

и select. I<br />

select v;<br />

foreach(int i in result)<br />

Console.writ e ("{0} ", і);<br />

Console.ReadKey () ;<br />

» f I r ~<br />

8 } ;<br />

Это пр<strong>е</strong>длож<strong>е</strong>ни<strong>е</strong> зам<strong>е</strong>ща<strong>е</strong>т<br />

оукоу V (п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нную диапазона)<br />

знач<strong>е</strong>ниями эл<strong>е</strong>М<strong>е</strong>нтоб массиба.<br />

сначала v равно о, зат<strong>е</strong>м — 1 2 ,<br />

зат<strong>е</strong>м — 4 4 , зат<strong>е</strong>м — 3 6 ... и т. д..<br />

Это пр<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> 37.<br />

^ат <strong>е</strong>м эти знач<strong>е</strong>ния<br />

И'^орядочиваются по<br />

возрастанию.<br />

. Пользоват<strong>е</strong>лям, знакомым с SQL,<br />

мож<strong>е</strong>т показаться странным<br />

кон<strong>е</strong>чно<strong>е</strong> полож<strong>е</strong>ни<strong>е</strong> пр<strong>е</strong>длож<strong>е</strong>ния<br />

select, но им<strong>е</strong>нно т а к о й<br />

синтаксис использу<strong>е</strong>тся в LINQ-<br />

^ .л п^но по одному<br />

Р<strong>е</strong>зультат:<br />

О 8 12 13 36<br />

Ключ<strong>е</strong>во<strong>е</strong> слово var заст авля<strong>е</strong>т ком пилят ор о п р <strong>е</strong> Э <strong>е</strong> л я т ь т и ^ ,<br />

м<strong>е</strong>нноЙ . .NBT диагност иру<strong>е</strong>т <strong>е</strong>го по т ипу локальной п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нной, ко<br />

т орую вы использовали для запроса UN0.<br />

В рассмат рива<strong>е</strong>м ом прим <strong>е</strong>р<strong>е</strong> при компиляции этой строки:<br />

va z result =s frcMB v in values<br />

ключ<strong>е</strong>во<strong>е</strong> слово var зам<strong>е</strong>ня<strong>е</strong>т ся на:<br />

IEnumerable<br />

И раз иж МЫ коснулись инт <strong>е</strong>рф<strong>е</strong>йсов, работающий с колл<strong>е</strong>кциям,<br />

вспомним о т ом , чт о инт <strong>е</strong>рф <strong>е</strong>йс Шпит<strong>е</strong>гаЫ<strong>е</strong> позволя<strong>е</strong>т п р о ­<br />

см ат риват ь эл<strong>е</strong>м<strong>е</strong>нт т один за другим. Ш ьш и н ст во запросов UNQ<br />

р<strong>е</strong>ализованы при помощи м<strong>е</strong>т одов, расилиряюи^их эт от инт<strong>е</strong>рф<strong>е</strong>йс.<br />

Т а к чт о ст алкиват ься с ним вам прид<strong>е</strong>тся доволшо часто.<br />

В<strong>е</strong>рнит<strong>е</strong>сь к глав<strong>е</strong> 8 для повтор<strong>е</strong>ния мат<strong>е</strong>риала о работ<strong>е</strong> инт<strong>е</strong>рф<strong>е</strong>йса 1 Е п ш а <strong>е</strong> г а Ы <strong>е</strong> < Т > .<br />

674 глава 15

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

Saved successfully!

Ooh no, something went wrong!