PART I
C h a p t e r 1 9 :
L I N Q
577
PART IPART I
var inStockList = from item in items
join entry in statusList
on item.ItemNumber equals entry.ItemNumber
select new Temp(item.Name, entry.InStock);
This query produces a sequence that contains objects that encapsulate the name and the in-
stock status of an inventory item. This information is synthesized from joining the two lists
items
and
statusList
. The following version reworks this query so that it uses the
Join( )
method rather than the C# query syntax:
// Use Join() to produce a list of item names and status.
var inStockList = items.Join(statusList,
k1 => k1.ItemNumber,
k2 => k2.ItemNumber,
(k1, k2) => new Temp(k1.Name, k2.InStock) );
Although this version uses the named class called
Temp
to hold the resulting object, an
anonymous type could have been used instead. This approach is shown next:
var inStockList = items.Join(statusList,
k1 => k1.ItemNumber,
k2 => k2.ItemNumber,
(k1, k2) => new { k1.Name, k2.InStock} );
Do'stlaringiz bilan baham: |