小編給大家分享一下C#中foreach語句怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)建站服務(wù)項目包括云巖網(wǎng)站建設(shè)、云巖網(wǎng)站制作、云巖網(wǎng)頁制作以及云巖網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,云巖網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到云巖省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
C# foreach語句是在C#中新引入的,在C和C++中沒有這個語句,而Visual Basic的程序員應(yīng)該對它不會陌生(for each)。它表示收集一個集合中的各個元素,并針對各個元素執(zhí)行內(nèi)嵌語句。C# foreach語句的格式為:
foreach(type identifier in expression)embedded-statement
其中類型(type)和標(biāo)識符(identifier)用來聲明循環(huán)變量,表達式(expression)對應(yīng)集合。每執(zhí)行一次內(nèi)嵌語句,循環(huán)變量就依次取集合中的一個元素代入其中。在這里,循環(huán)變量是一個只讀型局部變量,如果試圖改變它的值或?qū)⑺鳛橐粋€ref或out類型的參數(shù)傳遞,都將引發(fā)編譯時的錯誤。
C# foreach語句中的expresssion必須是集合類型,如果該集合的元素類型與循環(huán)變量類型不一致,則必須有一個顯示定義的從集合中的元素類型到循環(huán)變量元素類型的顯式轉(zhuǎn)換。
集合的概念相信大家都不陌生,它表示一組相同或相似的數(shù)據(jù)項總的描述。那么在C#中,究竟什么樣的類型算是集合類型呢?我們從語法上給出集合類型的定義:
◆該類型必須支持一個形為Getenumerator()的公有的非靜態(tài)方法,該方法的返回類型為結(jié)構(gòu)、類或接口。
◆形為GetEumerator()的方法返回的結(jié)構(gòu)、類或接口應(yīng)當(dāng)包含一個公有的非靜態(tài)的方法MoveNext(),該方法的返回類型為布爾型。
◆形為GetEumerator()的方法返回的結(jié)構(gòu)、類或接口應(yīng)當(dāng)包含一個公有的非靜態(tài)的屬性Current,該屬性可以讀出。
如果一個類型同時滿足以上三個條件,該類型稱為集合類型。Current屬性的類型叫作該集合類型的元素類型。
我們姑且不論集合類型的具體形式,只從foreach語句的使用角度舉一個例子。
假設(shè)Prime是一個滿足條件的集合類型,它的元素類型為0到1000以內(nèi)的質(zhì)數(shù)。MyInt是我們自定義的一個類型,其范圍為200到300之間的整數(shù)。下面這段程序用于在屏幕上打印出從200到300以內(nèi)的所有質(zhì)數(shù)。
using System; using System.Collections; class Test { public static void Main() { Console.WriteLine("See the prime number:"); foreach(MyInt x in Prime) Console.WriteLine("{0}",x); } }
順便說一句,數(shù)組類型是支持foreach語句的,對于一維數(shù)組,執(zhí)行順序是從下標(biāo)為0的元素開始,一直到數(shù)組的***一個元素;對于多維數(shù)組,元素下標(biāo)的遞增是從最右邊那一維開始的,依次類推。
同樣,break和continue可以出現(xiàn)在foreach語句中,功能不變。
以上是“C#中foreach語句怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!