.net中for與foreach的比較及使用。
當for與陣列用在一起的時候,如:
for(int i=0 ;i<array.count;i++) { }
.net的編譯器會有一個自動的優化,就是去獲取該陣列的一個總值array.count,並存放在記憶體中,無論你的陣列是多大, array.count在loop的時候不用反覆獲取array的總數。重點是這個過程並不是很快,可能是有一定的安全性操作,畢竟這個放在記憶體中的值還要及時的清除掉。當陣列總數很小的時候,這個獲取總數的操作佔遍歷一遍陣列的比重是比較大的。
foreach是ienumerator介面每遍歷一次都要有兩個步驟獲取釋放,這兩個步驟都是很快的但是當量很大的時候其影響就不可忽視了。
因此很簡單的說,當陣列總量較大的時候一般使用for,較小的時候使用foreach。較大較小的參比值大概是8萬~10萬
相關推薦
.net中for與foreach的比較及使用。
當for與陣列用在一起的時候,如: for(int i=0 ;i<array.count;i++) { } .net的編譯器會有一個自動的優化,就是去獲取該陣列的一個總值array.count,並存放在記憶體中,無論你的陣列是多大, array.count
.NET中string與StringBuilder在字符串拼接功能上的比較
創建 假設 copy 隨著 app www. 評估 們的 都是 來自森大科技官方博客 http://www.cnsendblog.com/?p=86 .NET中string與StringBuilder在字符串拼接功能上的比較string與StringBuilder的在字符
.net 中 Json 與List 相互轉
pre num pos row exceptio image null lex obj var duanxin1 = new DuanXin(); duanxin1.RECEIVE_LOGIN_NAME
MySQL中MyISAM與InnoDB區別及選擇,mysql添加外鍵
title 必須 pan 就會 默認 簡化 平臺 兩種 myisam InnoDB:支持事務處理等不加鎖讀取支持外鍵支持行鎖不支持FULLTEXT類型的索引不保存表的具體行數,掃描表來計算有多少行DELETE 表時,是一行一行的刪除InnoDB 把數據和索引存放在表空間裏面
c++中for的四種用法。
四種 mes pre using In col space c++ names #include <algorithm> #include <vector> #include <iostream> using namespace
MySQL中MyISAM與InnoDB區別及選擇
重建 包含 好的 數據 mysql 備份 處理 表空間 種類 InnoDB:支持事務處理等不加鎖讀取支持外鍵支持行鎖不支持FULLTEXT類型的索引不保存表的具體行數,掃描表來計算有多少行DELETE 表時,是一行一行的刪除InnoDB 把數據和索引存放在表空間裏面跨平臺可
多執行緒之Lock與synchronized比較及使用
第一:先比較兩者的區別: 類別 synchronized
Mabitis中的#與$符號區別及用法介紹
一、介紹 mybatis 中使用 Mapper.xml裡面的配置進行 sql 查詢,經常需要動態傳遞引數,例如我們需要根據使用者的姓名來篩選使用者時,sql 如下: ?
Verilog中函式與任務比較
http://blog.163.com/taofenfang_05/blog/static/64214093201181692057682/ 任務和函式只能實現組合邏輯,而對時序邏輯無能為力。 1 任務 任務就是一段封裝在“task-endtask”之間的程式
JAVA中Long與Integer比較容易犯的錯誤
今天使用findbugs掃描專案後發現很多高危漏洞,其中非常常見的一個是比較兩個Long或Integer時直接使用的==來比較。 其實這樣是錯誤的。 因為Long與Ineger都是包裝型別,是物件。 而不是普通型別long與int , 所以它們在比較時必須都應該用equ
java中for和foreach迴圈
foreach 從Java 5之後,Java提供了一種更簡單的迴圈:foreach迴圈,這種迴圈遍歷陣列和集合更加簡潔。使用foreach迴圈遍歷陣列和集合元素時,無需獲得陣列和集合長度
Java中 for和foreach迴圈的區別
foreach語句是java5中新增,在遍歷陣列、集合的時候效能比一般for迴圈能好一些。 foreach是for語句的簡化,foreach是for的充分不必要條件。任何foreach都能改寫為for迴圈,但是反之則行不通。但是foreach並不能替代for迴
java中for和foreach的區別
普通for迴圈 for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); list.remove(i);
ssh框架中,ajax無法呼叫servlet的一種原因:web.xml中servlet與struts的衝突。
在進行一個ssh專案開發的過程中,在使用ajax+servlet做聯想輸入時出現了一個問題,功能總是無法實現,在測試之後發現問題處在ajax完全沒有呼叫servlet!於是便開始找錯,新建了一個web
BIO與NIO比較及例子
java NIO的工作原理:1. 由一個專門的執行緒來處理所有的 IO 事件,並負責分發。 2. 事件驅動機制:事件到的時候觸發,而不是同步的去監視事件。 3. 執行緒通訊:執行緒之間通過 wait,notify 等方式通訊。保證每次上下文切換都是有意義的。減少無謂的執行緒切換。如下圖:一個執行緒Reacto
python 中 date與str轉化及date之間的運算
1、str 2 date 標頭檔案 import datetime str="20180805" str2date=datetime.datetime.strptime(str,"%Y%m%d")#字串轉化為date形式 date2str=str2date
ASP.NET中DataTable與DataSet之間的轉換
DataSet包含了多個DataTable,以及DataTable之間的約束關係。 如果你的資料不需要做關係對映,直接用DataTable效率比較高。如果有需要1:N或N:M這樣的關係查詢,將DataSet中的相應DataTable全部填充,再使用關係查詢資料。 Dat
Asp.net中Web.config連線字串及配置資料庫sqlserver,詳細
近日正在看Asp.net,看到Web.config有很不清楚之處,特意從網路、MSDN蒐集、歸納和整理,供大家分享。在ASP.NET的web.config中,可以用兩種方式來寫連線字串的配置。<configuration> <appSettings&g
為什麼使用solr----solr與Lucene比較及solr 的結構分析
原文連結:http://www.aboutyun.com/thread-7018-1-1.html本帖最後由 nettman 於 2014-2-28 22:46 編輯 可以帶著下面問題來閱讀: 1.搜尋為什麼使用solr? 2.一個索引越來越大,solr是如何應對的? 3.Solr是什麼,一句話描述? 4
ASP.NET中website與webApplication區別
1,直觀區別:對每一個aspx頁面檔案,WebApplication在有對應cs檔案多了一個designer.cs檔案. 2,優缺點比較如下: WebApplication程式設計模型的優點: ●網站編譯速度快,使用了增量編譯模式,僅僅只有檔案被修改後,這部分才