new InStockStatus(1424, true), new InStockStatus(7892, false), new InStockStatus(8534, true),

new InStockStatus(6411, true)    4

};

// Сформировать запрос, объединяющий объекты классов Item //и InStockStatus для составления списка наименований товаров // и их наличия на складе. Обратите внимание на формирование // последовательности объектов класса Temp, var inStockList = from item in items

join entry in statusList

on item.ItemNumber equals entry.ItemNumber select new Temp(item.Name, entry.InStock);

9

Console.WriteLine("Товар\^Наличие\п");

// Выполнить запрос и вывести его результаты. foreach(Temp t in inStockList)

Console.WriteLine("{0}\t{l}", t.Name, t.InStock);

}‘

Товар    Наличие

Кусачки True Тиски - False Молоток True Пила    True

Для того чтобы стал понятнее принцип действия оператораjoin,рассмотрим каждую строку запроса из приведенной выше программы по порядку. Этот запрос начинается, как обычно, со следующего оператораfrom.

var inStockList = from item in items

В этом операторе указывается переменная диапазонаitemдля источника данныхitems,который представляет собой массив объектов классаItem.В классеItemинкапсулируются наименование товара и порядковый номер товара, хранящегося на складе.

Далее следует приведенный ниже операторjoin.

join entry in statusList

on item.ItemNumber equals entry.ItemNumber

В этом операторе указывается переменная диапазонаentryдля источника данныхstatusList,который представляет собой массив объектов классаInStockStatus,связывающего порядковый номер товара с состоянием его запасов на складе. Следовательно, у массивовitemsиstatusListимеется общее свойство: порядковый номер товара. Именно это свойство используется в частиon/equalsоператораjoinдля описания связи, по которой из двух разных источников данных выбираются наименования товаров, когда их порядковые номера совпадают.

И наконец, операторselectвозвращает объект классаTemp,содержащий наименование товара и состояние его запасов на складе.

select new Temp(item.Name, entry.InStock);

Таким образом, последовательность результатов, получаемая по данному запросу, состоит из объектов типаTemp.

Перейти на страницу:

Похожие книги