河南鄭州企業網站建設網絡公司多爾福科技
服務熱線:0371-60999820
15238075082
c#中 foreach 用法
foreach循環用于列舉出集合中所有的元素,foreach語句中的表達式由關鍵字in隔開的兩個項組成。in右邊的項是集合名,in左邊的項是變量名,用來存放該集合中的每個元素。

該循環的運行過程如下:每一次循環時,從集合中取出一個新的元素值。放到只讀變量中去,如果括號中的整個表達式返回值為true,foreach塊中的語句就能夠執行。一旦集合中的元素都已經被訪問到,整個表達式的值為false,控制流程就轉入到foreach塊后面
的執行語句。

foreach語句經常與數組一起使用,下面實例將通過foreach語句讀取數組的值并進行顯示。

數組的屬性:Array.Length數組的容量

利用這個屬性,我們可以取得數組對象允許存儲的容量值,也就是數組的長度、元素個數,這個比較好理解,數組還有其他的屬性,比如數組的維數等,屬性的用法比較簡單,學會一種,其他的格式基本一致,這里我們就不舉例了。

當數組的維數、容量較多時,C#提供了foreach語句,專門用來讀取集合/數組中的所有元素,我們把這種功能叫做遍歷。語法書寫如下:

遍歷數組:foreach(type objName in collection/Array)

這段語句會逐一檢查數組中的所存儲的變量值,并且一一將其取出,其中的type是你所要讀取的數組對象將要存儲在objName變量的數據類型,而objName是定義了一個type類型的變量名,代表每一次從集合和數組(collection/Array)中取得的元素,collection/Array則是所要存取的數組對象。用這種方法只需寫一個foreach就可以遍歷出除交錯數組以外的所有維數的數組。

注: objName的數據類型type必須與collection/Array對象的類型相同或比它大。

下面我們舉一個用foreach和for遍歷規則數組的例子,其中涉及到了一個數組得到維數的方法,比較foreach在一次性遍歷規則數組上的優勢。

           int[,,] a = new int[2, 2, 2] { {{ 1, 2 }, { 3,4}},{{ 5, 6 }, { 7,8}} };//定義一個2行2列2縱深的3維數組a

            for (int i = 0; i < a.GetLength (0) ;i++ )   //用Array.GetLength(n)得到數組[0,1,,,n]上的維數的元素數,0代表行,1列,n代表此數組是n+1維

            {

                for (int j = 0; j < a.GetLength(1); j++)

                {

                    for (int z = 0; z < a.GetLength(2);z++ )//2代表得到縱深上的元素數,如果數組有n維就得寫n個for循環

                    {

                        Console.WriteLine(a[i,j,z]);

                    }

                }

            }

用foreach循環一次性遍歷a數組

          int[,,] a = new int[2, 2, 2] { {{ 1, 2 }, { 3,4}},{{ 5, 6 }, { 7,8}} };//定義一個2行2列2縱深的3維數組a
                      foreach(int i in a)
                      {
                          Console .WriteLine (i);
                      }

這兩種代碼執行的結果是一樣的都是 每行一個元素,共8行,元素分別是1 2 3 4 5 6 7 8

下面我們再做個例子,是一個利用for和foreach循環做的存取數組元素的例子,首先提示用戶輸入學生的個數,然后把學生個數作為存儲學生姓名的數組names的元素個數,采用for循環按照數組的索引i從0位開始循環輸出“輸入學生姓名”的提示,并把用戶輸入的學生姓名按照其在數組的索引方式names[i]存儲在names數組中,for循環次數的最大值(即索引的最大值)通過數組屬性.Length得到,我們說過容量與索引之間的關系是index=Array.Length-1,本題即i的最大值<names.Length,存儲后,提示“輸出學生姓名”,再用foreach循環一次性遍歷names數組中存儲的每個元素(學生的姓名),一個一個的把它賦值給name元素,然后輸出到控制臺上。

必須注意的是,借助foreach,只能一一取得數組中的元素,并不能利用這種語句改變數組所存儲的元素。
上一篇: C#語言之“string格式的日期時間字符串轉為DateTime類型”的方法 下一篇: C#中Split用法
網站首頁 | 關于我們 | 版權所有 | 網站地圖 | 服務項目 | 網站建設 | 網站優化 | 軟件開發 | 經典案例 | 常見問題 | 聯系我們
版權所有:河南多爾福電子科技有限公司 豫ICP17014991號-2 技術支持:多爾福科技
地址:河南省鄭州市鄭東新區東風南路萬通街英地金臺府邸4號樓2單元1204室。 手機:15238075082 Email:[email protected]
大乐透胆拖中奖规则图