C# - 陣列



陣列儲存相同型別元素的固定大小的順序集合。陣列用於儲存資料集合,但通常將其視為儲存在連續記憶體位置的相同型別變數的集合更有用。

與其宣告單個變數,例如 number0、number1、... 和 number99,不如宣告一個數組變數,例如 numbers,並使用 numbers[0]、numbers[1] 和 ...、numbers[99] 來表示單個變數。陣列中的特定元素透過索引訪問。

所有陣列都由連續的記憶體位置組成。最低地址對應於第一個元素,最高地址對應於最後一個元素。

Arrays in C#

宣告陣列

要在 C# 中宣告陣列,可以使用以下語法:

datatype[] arrayName;

其中,

  • 資料型別 用於指定陣列中元素的型別。

  • [ ] 指定陣列的秩。秩指定陣列的大小。

  • 陣列名 指定陣列的名稱。

例如,

double[] balance;

初始化陣列

宣告陣列不會在記憶體中初始化陣列。當陣列變數被初始化時,您可以為陣列賦值。

陣列是一種引用型別,因此您需要使用new關鍵字來建立陣列的例項。例如,

double[] balance = new double[10];

為陣列賦值

您可以使用索引號為各個陣列元素賦值,例如:

double[] balance = new double[10];
balance[0] = 4500.0;

您可以在宣告時為陣列賦值,如下所示:

double[] balance = { 2340.0, 4523.69, 3421.0};

您還可以建立和初始化陣列,如下所示:

int [] marks = new int[5]  { 99,  98, 92, 97, 95};

您也可以省略陣列的大小,如下所示:

int [] marks = new int[]  { 99,  98, 92, 97, 95};

您可以將一個數組變數複製到另一個目標陣列變數中。在這種情況下,目標和源都指向相同的記憶體位置:

int [] marks = new int[]  { 99,  98, 92, 97, 95};
int[] score = marks;

當您建立陣列時,C# 編譯器會根據陣列型別隱式地將每個陣列元素初始化為預設值。例如,對於 int 陣列,所有元素都初始化為 0。

訪問陣列元素

透過索引陣列名稱來訪問元素。這是透過在陣列名稱後面方括號中放置元素的索引來完成的。例如,

double salary = balance[9];

以下示例演示了上述概念,包括宣告、賦值和訪問陣列:

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         int []  n = new int[10]; /* n is an array of 10 integers */
         int i,j;

         /* initialize elements of array n */
         for ( i = 0; i < 10; i++ ) {
            n[ i ] = i + 100;
         }
         
         /* output each array element's value */
         for (j = 0; j < 10; j++ ) {
            Console.WriteLine("Element[{0}] = {1}", j, n[j]);
         }
         Console.ReadKey();
      }
   }
}

當以上程式碼編譯並執行時,會產生以下結果:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

使用foreach迴圈

在前面的示例中,我們使用 for 迴圈訪問每個陣列元素。您還可以使用foreach語句遍歷陣列。

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         int []  n = new int[10]; /* n is an array of 10 integers */
         
         /* initialize elements of array n */
         for ( int i = 0; i < 10; i++ ) {
            n[i] = i + 100;
         }
         
         /* output each array element's value */
         foreach (int j in n ) {
            int i = j-100;
            Console.WriteLine("Element[{0}] = {1}", i, j);
         }
         Console.ReadKey();
      }
   }
}

當以上程式碼編譯並執行時,會產生以下結果:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

C# 陣列

以下是一些與陣列相關的重要的概念,C# 程式設計師應該瞭解:

序號 概念及描述
1 多維陣列

C# 支援多維陣列。多維陣列最簡單的形式是二維陣列。

2 交錯陣列

C# 支援多維陣列,即陣列的陣列。

3 將陣列傳遞給函式

您可以透過指定陣列名稱(不帶索引)將指向陣列的指標傳遞給函式。

4 引數陣列

這用於將未知數量的引數傳遞給函式。

5 Array 類

定義在 System 名稱空間中,它是所有陣列的基類,並提供各種用於處理陣列的屬性和方法。

廣告