ラムダ変数のスコープについて混乱しています。たとえば、次のようになります。
var query =
from customer in clist
from order in olist
.Where(o => o.CustomerID == customer.CustomerID && o.OrderDate == // line 1
olist.Where(o1 => o1.CustomerID == customer.CustomerID) // line 2
.Max(o1 => o1.OrderDate) // line 3
)
select new {
customer.CustomerID,
customer.Name,
customer.Address,
order.Product,
order.OrderDate
};
1行目でラムダ変数「o」を宣言しました。これは2行目で再度宣言できないことを意味します(または、少なくともコンパイラーが文句を言います)が、「o1」がすでに存在していても3行目については文句を言いません。 ??
ラムダ変数のスコープは何ですか?