1. 程式人生 > 程式設計 >詳解c# 陣列(Array)

詳解c# 陣列(Array)

陣列是一個儲存相同型別元素的固定大小的順序集合。陣列是用來儲存資料的集合,通常認為陣列是一個同一型別變數的集合。

宣告陣列變數並不是宣告 number0、number1、...、number99 一個個單獨的變數,而是宣告一個就像 numbers 這樣的變數,然後使用 numbers[0]、numbers[1]、...、numbers[99] 來表示一個個單獨的變數。陣列中某個指定的元素是通過索引來訪問的。

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

詳解c# 陣列(Array)

宣告陣列

在 C# 中宣告一個數組,您可以使用下面的語法:

datatype[] arrayName;

其中,

  • 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,95};

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

int [] marks = new int[] { 99,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 是一個帶有 10 個整數的陣列 */
     int i,j;


     /* 初始化陣列 n 中的元素 */    
     for ( i = 0; i < 10; i++ )
     {
      n[ i ] = i + 100;
     }

     /* 輸出每個陣列元素的值 */
     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 是一個帶有 10 個整數的陣列 */


     /* 初始化陣列 n 中的元素 */    
     for ( int i = 0; i < 10; i++ )
     {
      n[i] = i + 100;
     }

     /* 輸出每個陣列元素的值 */
     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# 中,陣列是非常重要的,且需要了解更多的細節。下面列出了 C# 程式設計師必須清楚的一些與陣列相關的重要概念:

概念 描述
多維陣列 C# 支援多維陣列。多維陣列最簡單的形式是二維陣列。
交錯陣列 C# 支援交錯陣列,即陣列的陣列。
傳遞陣列給函式 您可以通過指定不帶索引的陣列名稱來給函式傳遞一個指向陣列的指標。
引數陣列 這通常用於傳遞未知數量的引數給函式。
Array 類 在 System 名稱空間中定義,是所有陣列的基類,並提供了各種用於陣列的屬性和方法。

以上就是詳解c# 陣列(Array)的詳細內容,更多關於c# 陣列(Array)的資料請關注我們其它相關文章!