存取陣列元素

應用程式透過索引,執行陣列元素的存取,以下從實際的程式碼來看最簡單的陣列元素存取。
class Program
{
    static void Main(string[] args)
    {
        int[] arrayInt = new int[2];
        arrayInt[0] = 100;
        arrayInt[1] = 200;
        int a = arrayInt[0];
        int b = arrayInt[1];
        Console.WriteLine(a);
        Console.WriteLine(b);
        Console.ReadKey();
    }
}
一開始宣告的變數 arrayInt 是一個可以儲存兩個整數的陣列,接下來將整數 100 儲存至索引為 0 的位置,然後再將 200 儲存至至索引為 1 的位置。

然後宣告變數 a ,透過指定索值 0 將儲存在 arrayInt 陣列的值 100 取出,儲存至變數 a,緊接著宣告變數 b,取出索引位置 1 的值 200 。

輸出結果,顯示變數 a 與 b 的值分是 100 與 200 。

我們透過索引值進行陣列元素的存取,因此只要能控制索引即可進行相關的存取操作,現在利用另外一個範例說明,其中結合迴圈的操作。
class Program
{
    static void Main(string[] args)
    {
        int[] intArray = new int[10];
        for (int i = 0; i < 10; i++)
        {
            intArray[i] = i * 10;
        }
        Console.WriteLine
   ("以下列出陣列物件intArray 包含的所有元素值: ");

        for (int i = 0; i < intArray.Length; i++)
        {
            Console.WriteLine
    ("intArray[{0}] : {1} ", i, intArray[i]);
        }
        string[] strArray ={ "這", "是", "陣", "列", "測", "試", "!!"};
        Console.WriteLine("以下列出陣列物件strArray 包含的所有元素值: ");

        for (int i = 0; i < strArray.Length; i++)
        {
            Console.WriteLine
    ("strArray[{0}] : {1} ", i, strArray[i]);
        }
        Console.ReadLine();
    }
}
首先宣告一個容量大小等於 10 的 int 型態陣列 intArray ,接下來建立 for 迴圈敘述,其中以迴圈計數值當作索引,將一個指定的數值儲存至陣列。

接下來的另外一個迴圈,將 intArray 陣列當中的元素逐一取出。最後宣告另外一個字串型態的陣列 strArray ,並且直接進行初始化的動作,最後一組迴圈將其中的元素逐一取出,其中的判斷式引用 Length 屬性取得陣列目前的元素數目,並且作為迴圈的判斷條件值, Length 代表陣列的長度。

以下是輸出結果:
以下列出陣列物件 intArray 包含的所有元素值 :
intArray[0] : 0
intArray[1] : 10
intArray[2] : 20
intArray[3] : 30
intArray[4] : 40
intArray[5] : 50
intArray[6] : 60
intArray[7] : 70
intArray[8] : 80
intArray[9] : 90
以下列出陣列物件 strArray 包含的所有元素值 :
strArray[0] : 這
strArray[1] : 是
strArray[2] : 陣
strArray[3] : 列
strArray[4] : 測
strArray[5] : 試
strArray[6] : !!
由於是利用迴圈逐一設定索引值,因此可以連續取出陣列資料,不需要逐一設定,非常方便。

使用 foreach

如果只是單純的想要列舉陣列中的所有元素,使用 foreach 敘述會是比較簡潔的方式,foreach 專門用以讀取陣列中的所有元素,其語法如下所示:
foreach(type objName in collection)
這段語法會逐一檢視陣列中所儲存的變數值,並且逐一將其取出,其中的 type 為所要讀取的陣列型態,而 objName 是一個 type 型別變數,代表每一次取得的元素, collection則是所要存取的陣列物件。

必須注意的是, foreach 語法只能逐一取得陣列中的元素,沒有辦法改變其中所儲存的元素。

class Usingforeach
{
    static void Main()
    {
        string[] strArray = new string[5];

        for (int i = 0; i < 5; i++)
        {
            strArray[i] = "value " + i;
        }
        Console.WriteLine("以下使用foreach 敘述列出所有元素!! \n");

        foreach (string str in strArray)
        {
            Console.WriteLine(str);
        }        
        Console.ReadLine();
    }
}
建立一個大小等於 5 的字串型別陣列,緊接著使用一個 for 敘述句,逐一指定陣列中的元素值。 引用 foreach 述敘句,將陣列中的元素逐一輸出。 以下使用 foreach 敘述列出所有元素 !!
value 0
value 1
value 2
value 3
value 4
如你所見, foreach 自動將陣列中的元素逐一取出,使用 foreach 敘述時,型別必須與所要操作的陣列相同。




沒有留言: