中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

C# 中 foreach 遍歷的用法

foreach循環(huán)用于列舉出集合中所有的元素,foreach語句中的表達(dá)式由關(guān)鍵字in隔開的兩個項組成。in右邊的項是集合名,in左邊的項是變量名,用來存放該集合中的每個元素。

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

foreach語句經(jīng)常與數(shù)組一起使用,下面實例將通過foreach語句讀取數(shù)組的值并進(jìn)行顯示。

數(shù)組的屬性:Array.Length數(shù)組的容量

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

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

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

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

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

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

int[,,] a = new int[2, 2, 2] { {{ 1, 2 }, { 3,4}},{{ 5, 6 }, { 7,8}} };// 定義一個2行2列2縱深的3維數(shù)組a
for (int i = 0; i < a.GetLength (0) ;i++ )   //用Array.GetLength(n)得到數(shù)組[0,1,,,n]上的維數(shù)的元素數(shù),0代表行,1列,n代表此數(shù)組是n+1維
{
    for (int j = 0; j < a.GetLength(1); j++)
    {
        for (int z = 0; z < a.GetLength(2);z++ )//2代表得到縱深上的元素數(shù),如果數(shù)組有n維就得寫n個for循環(huán)
        {
            Console.WriteLine(a[i,j,z]);
        }
    }
}

用foreach循環(huán)一次性遍歷a數(shù)組

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

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

下面我們再做個例子,是一個利用for和foreach循環(huán)做的存取數(shù)組元素的例子,首先提示用戶輸入學(xué)生的個數(shù),然后把學(xué)生個數(shù)作為存儲學(xué)生姓名的數(shù)組names的元素個數(shù),采用for循環(huán)按照數(shù)組的索引i從0位開始循環(huán)輸出"輸入學(xué)生姓名"的提示,并把用戶輸入的學(xué)生姓名按照其在數(shù)組的索引方式names[i]存儲在names數(shù)組中,for循環(huán)次數(shù)的最大值(即索引的最大值)通過數(shù)組屬性.Length得到,我們說過容量與索引之間的關(guān)系是index=Array.Length-1,本題即i的最大值

必須注意的是,借助foreach,只能一一取得數(shù)組中的元素,并不能利用這種語句改變數(shù)組所存儲的元素。

C# foreach

using System;
class Program
{
    static void Main()
    {
        int count;
        Console.WriteLine("輸入要登記的學(xué)生數(shù)");
        count = int.Parse(Console.ReadLine());
        string[]names = new string[count];
        for (int i = 0; i < names.Length; i++)
        {
            Console.WriteLine("請輸入第{0}個學(xué)生的姓名", i + 1);
            names[i] = Console.ReadLine();
        }
        Console.WriteLine("已登記的學(xué)生如下");
        foreach (string name in names)
        {
            Console.WriteLine("{0}", name);
        }
        Console.ReadKey();
    }
}