Trong C # / VB.NET / .NET, vòng lặp nào chạy nhanh hơn, for
hay foreach
?
Kể từ khi tôi đọc rằng một for
vòng lặp hoạt động nhanh hơn một foreach
vòng lặp cách đây rất lâu, tôi cho rằng nó đúng với tất cả các bộ sưu tập, bộ sưu tập chung, tất cả các mảng, v.v.
Tôi đã lùng sục Google và tìm thấy một vài bài viết, nhưng hầu hết trong số đó là không có kết luận (đọc bình luận về các bài viết) và kết thúc mở.
Điều gì sẽ là lý tưởng là có từng kịch bản được liệt kê và giải pháp tốt nhất cho cùng một.
Ví dụ (chỉ là một ví dụ về cách nó phải như vậy):
- để lặp lại một mảng gồm hơn 1000 chuỗi -
for
tốt hơnforeach
- để lặp lại
IList
các chuỗi (không chung chung) -foreach
tốt hơnfor
Một vài tài liệu tham khảo được tìm thấy trên web cho cùng:
- Bài viết cũ tuyệt vời của Emmanuel Schanzer
- Dự án Code FOREACH Vs. CHO
- Blog - Đến
foreach
hay khôngforeach
, đó là câu hỏi - Diễn đàn ASP.NET - NET 1.1 C #
for
vs.foreach
[Biên tập]
Ngoài khía cạnh dễ đọc của nó, tôi thực sự quan tâm đến sự thật và số liệu. Có những ứng dụng mà dặm tối ưu hóa hiệu năng cuối cùng bị vắt kiệt.
foreach
thay vì for
trong C #. Nếu bạn thấy câu trả lời ở đây không có ý nghĩa gì cả, đó là lý do tại sao. Đổ lỗi cho người điều hành, không phải là câu trả lời không hay.