次の LINQ クエリがあるとします。
var query =
from c in Customers
where c.Country == "Italy"
orderby c.Name
select new { c.Name, c.City };
コンパイラは次のように変換します。
IEnumerable<Customer> query =
Customers
.Where( c => c.Country == "Italy" );
.OrderBy( c => c.Name )
.Select( c => new { c.Name, c.City } );
次に、次のようなクエリを使用できます。
foreach ( var name_city_pair in query ) ...
質問は次のとおりです。
foreach ループを使用すると、クエリで指定されたデータが既にクエリされているようです。では、このクエリ アクションはいつ行われるのでしょうか。のLINQクエリオブジェクトを定義するとき
IEnumerable<Customer>
ですか?データ数が多すぎる場合、レイト クエリ メカニズムはありますか? (これを説明する適切な言葉はわかりませんが、理解していただければ幸いです。)