2
http://codepaste.net/4xzv9k是codepaste鏈接,顯示的C#代碼(很抱歉,但我不能讓代碼看這裏)與Cast相比,爲什麼.ToList()是瓶頸?示例代碼如下
我的問題是,爲什麼像下面這樣的簡單的查詢是如此之快的投而不是一個.ToList擴展名:
//fast:
for (int i = 0; i < iterations; i++)
{
var queryShortWay1 = productList.OrderBy(a => a.ProductName).Where(a =>
a.ProductName.Length < 99);
mySecondProductLst = queryShortWay1 as List<Product>; //fast CAST
}
//slow:
for (int i = 0; i < iterations; i++)
{
var queryLongWay1 = productList.OrderBy(a => a.ProductName).Where(a =>
a.ProductName.Length < 99);
MyProductList = queryLongWay1.ToList(); //slow
}
你會認爲.ToList沒有那麼慢,但它至少是一個數量級。有什麼理由?
好吧,你是正確的Ic事實上,'快速'的方式並沒有做任何事情,只是創建mySecondProductLst = null。對我而言,好消息是我多年來一直以「緩慢」的方式(正確的方式)進行這項工作,但我認爲我只是以一種更快的方式偶然發現,但我錯了。將接受你的答案是正確的。 – PaulDecember