Nếu chúng tôi giả định rằng trong cả hai trường hợp, bạn đang sử dụng các phương pháp Mở rộng do lớp Enumerable
mở rộng cung cấp, thì bạn sẽ khó có thể đo được sự khác biệt giữa hai loại.
Hình thức còn ...
myCollection.Where(...).FirstOrDefault()
... sẽ (kỹ thuật) sản xuất hoạt động bộ nhớ hơn (tạo ra một iterator trung gian để xử lý các khoản Where()
) và liên quan đến nhiều một vài chu kỳ xử lý.
Điều này là các biến lặp này là lười biếng - mệnh đề Where()
sẽ không vui vẻ thông qua toàn bộ danh sách đánh giá biến vị ngữ, nó sẽ chỉ kiểm tra xem có bao nhiêu mục cần thiết không.