Đến qua mã này.Tại sao IEnumerable chậm và Danh sách nhanh?
var dic = new Dictionary<int, string>();
for(int i=0; i<20000; i++)
{
dic.Add(i, i.ToString());
}
var list = dic.Where(f => f.Value.StartsWith("1")).Select(f => f.Key);//.ToList(); //uncomment for fast results
Console.WriteLine(list.GetType());
var list2 = dic.Where(f => list.Contains(f.Key)).ToList();
Console.WriteLine(list2.Count())
Vì vậy, khi .ToList() được nhận xét là chậm, khi không - nhanh. Tái sản xuất here Làm cách nào để giải thích điều này? Tôi có nên luôn làm mọi thứ ToList() để đảm bảo tốc độ (tức là trong trường hợp nào IEnumerable sẽ thích hợp hơn)? Lưu ý tôi đang nói về linq cho các đối tượng, tôi biết linq để sql laziness và các công cụ.
Bạn kiểm tra thời gian bằng cách nào? –
@JoelCoehoorn đồng hồ treo tường – ren