1.dropdownlist
for寫法:
for(
inti=0
;i<
this
.ddl_userlist.items.count;i++)
} foreach寫法:
foreach
(listitem item
inthis
.dropdownlistcontrol.items)}
2.memorysteam
foreach寫法:
memorystream stream
=new
memorystream()
stringbuilder builder
=new
stringbuilder();
foreach
(byte
num in"
", num);}
3.dataset/datatable
for寫法:
dataset datarec
=...
for(
inti=0
;i<
dmgroupbyuser.tables[
0].rows.count;i++)
foreach寫法:
foreach
(datarow currentdr
indatarec.tables[
0].rows)
#6樓2008-08-24 17:38 | angel lucifer
既然大家如此執著於兩者,俺來表達下自己的看法:
for 和 foreach 表達的都是迭代語義。
但 foreach 實際上是 c# 編譯器對迭代器的封裝,它僅能對實現了 .net 迭代器模式的集合進行順序訪問,除此之外,它什麼也幹不了。從這點上來看,算是對 facade 模式的運用。當然它要比 for 語法上優雅那麼一點。這一點正是 facade 模式遮蔽了迭代集合時的囉嗦之處。
foreach 甚至只能唯讀訪問集合,而不能修改集合。如果你要在迭代期間修改集合,會丟擲 invalidoperationexception。這是 .net bcl 團隊的設計目標。不過在對併發集合訪問時,.net bcl 團隊正打算修改這個設計目標,使其可以在迭代期間修改集合,但這仍然要在聽取開發人員反饋之後,才能作出正式決定。而且一旦可以修改,在帶來幾許好處外,還會引入相當多的麻煩。
而 for 則不同,它除了可以做到上面的功能,還可以修改集合內容,此外還可以進行其他領域的迭代。
至於效能,對在除陣列之外的集合進行迭代唯讀訪問時,它兩個效能等效。而在陣列時,效能也差不多,嚴格的說,是 for 效能稍高一點,因為少了幾分函式呼叫開銷,但其實效能相差不大,這只有在千萬數量級及其以上才能體現出影響。
所以,拿 for 與 foreach 進行比較是不公平的, foreach 僅僅是 for 實現功能的乙個子集。
更多的可以參考 .net 的 bcl 以及 c++ 的 stl 和 boost。
SpringBoot學習 資料來源(一)單資料來源
springboot2.1.9預設支援三種資料來源 connection pool com.zaxxer.hikari.hikaridatasource org.apache.tomcat.jdbc.pool.datasource org.apache.commons.dbcp2.basicdata...
Xa資料來源和非Xa資料來源的選擇
weblogic xa資料來源和非xa資料來源的選擇 在專案上,不管是adf應用,bpm應用,或者是osb soa介面,資料來源和出站連線池的建立必然少不了,而資料來源的型別就有xa資料來源和非xa資料來源,那我們如何選擇呢,選擇不當會造成什麼後果呢,下面給出一點小小的心得 如何選擇 在新建資料來源...
Spring 配置單資料來源和多資料來源
如何配置多資料來源?1.spring直接配置所需的bean 事務相關 可選 操作相關 可選 2.springboot做了哪些配置?符合條件時才進行配置。1 spring boot中預設資料來源的發展 spring boot 1.x 預設使用tomcat的datasource。spring boot ...