假設我們有以下LINQ查詢:什麼時候實際執行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 });
然後我coud使用這樣的查詢:
foreach (var name_city_pair in query) ...
的問題是:
當我使用foreach循環時,似乎查詢指定的數據已被查詢出 。那麼這個查詢操作什麼時候發生? 是什麼時候我定義了LINQ查詢對象
IEnumerable<Customer>
?如果數據數量過大,有沒有後期查詢 機制? (我不知道正確的詞來形容這一點,但 我希望你讓我。)
我想你可能有上面的一些語法錯誤。您正在選擇匿名類型,然後說所選對象的類型爲Customer,然後遍歷查詢,如IEnumerable。 –
vossad01
感謝您的提醒。現在更正。 – smwikipedia