2007年08月28日

C#3.0:101 LINQ Samples の SelectMany - from Assignment

  
101 LINQ Samples でまたつまずいた。

以下は、101 LINQ Samples の SelectMany - from Assignment で示されているコード。

public void Linq17() {
List customers = GetCustomerList();

var orders =
from c in customers,
o in c.Orders,
total = o.Total
where total >= 2000.0M
select new {c.CustomerID, o.OrderID, total};

ObjectDumper.Write(orders);
}

でも、

public void Linq17() {
List<Customer> customers = GetCustomerList();

var orders =
from c in customers
from o in c.Orders
let total = o.Total
where total >= 2000.0M
select new { c.CustomerID, o.OrderId, total };

ObjectDumper.Write(orders);
}

だと思う。
この let が分からず悩んだ。
LINQ: .NET 言語統合クエリ
http://www.microsoft.com/japan/msdn/net/bb308959.aspx
の11ページの構文をみてやっとわかった。

---
追記 8/29
Linq17のコードを載せるべきところ、Linq18のコードを載せてしまいましたので、その部分を差し替えました。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/51083301