[英]Do I need to check the Count() of an Enumerable before foreach
[英]Should I check the Count of the collection before using foreach?
在使用foreach枚舉內容之前,添加集合計數檢查是否會有任何性能改進?
if (users.Count != 0) {
foreach (var user in users) {
// do what snowmen do in summer
}
}
與
foreach (var user in users) {
// do what snowmen do in summer
}
我的函數花費的時間太長,所以我想知道這是否會提高性能甚至使我的函數執行時間減少到我需要的時間。
編輯(執行此循環的上下文):
for (DateTime day = dayStart; day < dayEnd; day = day.addMinutes(30)) {
// Other actions
if (users.Count != 0) {
foreach (var user in users) {
// do what snowmen do in summer
}
}
}
這兩個腳本具有相同的結果。
如果計數為零,則Foreach將不執行任何操作,因此不需要if語句。
執行差異(以納秒為單位)和更大之間的差異並不快,如果列表中有項目,則差異會變慢,但是在兩種情況下您都不會注意到任何事情。
第一個版本可能是降級版本。
很有可能foreach中的第一條指令是對空虛的快速測試。 因此,您實質上是在重復兩次相同的操作。
在任何情況下,這種“納米優化”在實踐中都沒有可見的效果。
(除非在大多數情況下,Count為零。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.