C 中的陣列

2021-09-06 07:46:10 字數 4018 閱讀 1741

c#陣列arrayforeach索引null

陣列概述

陣列是一種資料結構,它包含若干相同型別的變數。陣列是使用型別宣告的:

陣列具有以下屬性:

c# 陣列從零開始建立索引,即陣列索引從零開始。c# 中陣列的工作方式與在大多數其他流行語言中的工作方式類似。但還有一些差異應引起注意。

宣告陣列時,方括號 () 必須跟在型別後面,而不是識別符號後面。在 c# 中,將方括號放在識別符號後是不合法的語法。

int table; //

not int table;

另一細節是,陣列的大小不是其型別的一部分,您可以宣告乙個陣列並向它分配 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;

初始化陣列

通過將初始值括在大括號 ({}) 內為在宣告時初始化陣列提供了簡單而直接了當的方法。下面的示例展示初始化不同型別的陣列的各種方法。

注意   如果在宣告時沒有初始化陣列,則陣列成員將自動初始化為該陣列型別的預設初始值。另外,如果將陣列宣告為某型別的字段,則當例項化該型別時它將被設定為預設值 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 };

請注意,對於交錯陣列的元素沒有初始化語法。

訪問陣列成員

訪問陣列成員可以直接進行,例如,下面的**建立乙個名為 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);

}

該示例的輸出為:

9993

33555

不過,由於有了多維陣列,使用巢狀 for 迴圈將使您可以更好地控制陣列元素。

C 中的陣列和C 中陣列的區別

c 中陣列是引用型別,c 定義整型陣列方式是 int intarray 或int intarray new int 10 而c 中定義整型陣列的方式是 int intarray 或int intarray new int 10 c 中的陣列可以是一維的也可以是多維的,同樣也支援矩陣和參差不齊的陣列。...

C 中的陣列和C 中陣列的區別

c 中陣列是引用型別,c 定義整型陣列方式是 int intarray 或int intarray new int 而c 中定義整型陣列的方式是 int intarray 或int intarray new int c 中的陣列可以是一維的也可以是多維的,同樣也支援矩陣和參差不齊的陣列。注意 定義多...

c 中的陣列

array是所有陣列的基類。所以用普通方法建立的陣列可以使用array建立的陣列例項上的所有方法和屬性。建立 陣列的length可以用變數賦值,但是在賦值之前這個變數必須初始化。一維 int arr new int length array arr array.createinstance type...