陣列概述
c# 陣列從零開始建立索引,即陣列索引從零開始。c# 中陣列的工作方式與在大多數其他流行語言中的工作方式類似。但還有一些差異應引起注意。
宣告陣列時,方括號 () 必須跟在型別後面,而不是識別符號後面。在 c# 中,將方括號放在識別符號後是不合法的語法。
int table; // not int table;
另一細節是,陣列的大小不是其型別的一部分,而在 c 語言中它卻是陣列型別的一部分。這使您可以宣告乙個陣列並向它分配 int 物件的任意陣列,而不管陣列長度如何。
int numbers; // declare numbers as an int array of any size
numbers = new int[10]; // numbers is a 10-element array
numbers = new int[20]; // now it's a 20-element array
宣告陣列
c# 支援一維陣列、多維陣列(矩形陣列)和陣列的陣列(交錯的陣列)。下面的示例展示如何宣告不同型別的陣列:
一維陣列:int numbers;
多維陣列:string[,] names;
陣列的陣列(交錯的):byte scores;
宣告陣列(如上所示)並不實際建立它們。在 c# 中,陣列是物件(本教程稍後討論),必須進行例項化。下面的示例展示如何建立陣列:
一維陣列:int numbers = new int[5];
多維陣列:string[,] names = new string[5,4];
陣列的陣列(交錯的):byte scores = new byte[5]; for (int x = 0; x < scores.length; x++)
還可以有更大的陣列。例如,可以有三維的矩形陣列:int[,,] buttons = new int[4,5,3];
甚至可以將矩形陣列和交錯陣列混合使用。例如,下面的**宣告了型別為 int 的二維陣列的三維陣列的一維陣列int[,,][,] numbers;
初始化陣列
c# 通過將初始值括在大括號 ({}) 內為在宣告時初始化陣列提供了簡單而直接了當的方法。下面的示例展示初始化不同型別的陣列的各種方法。
注意 如果在宣告時沒有初始化陣列,則陣列成員將自動初始化為該陣列型別的預設初始值。另外,如果將陣列宣告為某型別的字段,則當例項化該型別時它將被設定為預設值 null。
一維陣列
int numbers = new int[5] ;
string names = new string[3] ;
可省略陣列的大小,如下所示:
int numbers = new int ;
string names = new string ;
如果提供了初始值設定項,則還可以省略 new 運算子,如下所示:
int numbers = ;
string names = ;
多維陣列
int[,] numbers = new int[3, 2] , , };
string[,] siblings = new string[2, 2] , };
可省略陣列的大小,如下所示:
int[,] numbers = new int[,] , , };
string[,] siblings = new string[,] , };
如果提供了初始值設定項,則還可以省略 new 運算子,如下所示:
int[,] numbers = , , };
string[,] siblings = , };
交錯的陣列(陣列的陣列)
可以像下例所示那樣初始化交錯的陣列:
int numbers = new int[2] , new int };
可省略第乙個陣列的大小,如下所示:
int numbers = new int , new int };-或-
int numbers = , new int };
請注意,對於交錯陣列的元素沒有初始化語法。
訪問陣列成員
訪問陣列成員可以直接進行,類似於在 c/c++ 中訪問陣列成員。例如,下面的**建立乙個名為 numbers 的陣列,然後向該陣列的第五個元素賦以 5:
int numbers = ;
numbers[4] = 5;
下面的**宣告乙個多維陣列,並向位於 [1, 1] 的成員賦以 5:
int[,] numbers = , , , , };
numbers[1, 1] = 5;
下面宣告乙個一維交錯陣列,它包含兩個元素。第乙個元素是兩個整數的陣列,第二個元素是三個整數的陣列:
int numbers = new int , new int };
下面的語句向第乙個陣列的第乙個元素賦以 58,向第二個陣列的第二個元素賦以 667:
numbers[0][0] = 58;
numbers[1][1] = 667;
陣列是物件
在 c# 中,陣列實際上是物件。system.array 是所有陣列型別的抽象基型別。可以使用 system.array 具有的屬性以及其他類成員。這種用法的乙個示例是使用「長度」(length) 屬性獲取陣列的長度。下面的**將 numbers 陣列的長度(為 5)賦給名為 lengthofnumbers 的變數:
int numbers = ;
int lengthofnumbers = numbers.length;
system.array 類提供許多有用的其他方法/屬性,如用於排序、搜尋和複製陣列的方法。
對陣列使用 foreach
c# 還提供 foreach 語句。該語句提供一種簡單、明了的方法來迴圈訪問陣列的元素。例如,下面的**建立乙個名為 numbers 的陣列,並用 foreach 語句迴圈訪問該陣列:
int numbers = ;
foreach (int i in numbers)
由於有了多維陣列,可以使用相同方法來迴圈訪問元素,例如:
int[,] numbers = new int[3, 2] , , };
foreach(int i in numbers) ", i);}
該示例的輸出為: 9 99 3 33 5 55
不過,由於有了多維陣列,使用巢狀 for 迴圈將使您可以更好地控制陣列元素。
C 陣列的宣告方式
c 陣列的五種宣告方式 一 宣告乙個未經初始化的陣列引用,以後可以把這引用初使化為乙個陣列例項 int intarray intarray new int 10 注 陣列的引用必須以相同或相關型別例項化,陣列初使化預設值,值型別為0,引用型別為null 二 宣告乙個陣列引用並對他進行初使化,該陣列引...
C 陣列的宣告方式
一次性生命多個相同型別的變數 int 陣列名 new 陣列長度 陣列型別是引用型別,宣告陣列變數只是為引用陣列例項預留空間。實際的陣列例項是在執行時使用 new 運算子動態建立而成。new 運算指定了新陣列例項的長度,然後在此例項的生存期內固定使用這個長度。陣列元素的索引介於 0 到 length ...
C 陣列的宣告方式
c 陣列的五種宣告方式 一 宣告乙個未經初始化的陣列引用,以後可以把這引用初使化為乙個陣列例項 int intarray intarray new int 10 二 宣告乙個陣列引用並對他進行初使化,該陣列引用被立即賦予乙個陣列的新例項。int intarray new int 10 三 宣告乙個陣...