W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
多維數(shù)組有兩種類型:矩形和鋸齒。
矩形陣列表示存儲器的n維塊,鋸齒形陣列是陣列陣列。
使用逗號分隔每個(gè)維度來聲明矩形數(shù)組。
以下聲明一個(gè)矩形二維數(shù)組,其中維度為3乘3:
int[,] matrix = new int[3,3];
數(shù)組的 GetLength
方法返回從0開始的給定維度的長度:
for (int i = 0; i < matrix.GetLength(0); i++) {
for (int j = 0; j < matrix.GetLength(1); j++) {
matrix[i,j] = i * 3 + j;
}
}
矩形數(shù)組可以初始化如下:
int[,] matrix = new int[,] {
{0,1,2},
{3,4,5},
{6,7,8}
};
鋸齒數(shù)組使用連續(xù)的方括號來表示每個(gè)維度。
這里是一個(gè)聲明一個(gè)鋸齒狀的二維數(shù)組的例子,其中最外面的維度是3:
int[][] matrix = new int[3][];
內(nèi)部尺寸未在聲明中指定,每個(gè)內(nèi)部數(shù)組可以是任意長度。
每個(gè)內(nèi)部數(shù)組都隱式初始化為null
,而不是一個(gè)空數(shù)組。
每個(gè)內(nèi)部數(shù)組必須手動(dòng)創(chuàng)建:
for (int i = 0; i < matrix.Length; i++) {
matrix[i] = new int[3]; // Create inner array
for (int j = 0; j < matrix[i].Length; j++)
matrix[i][j] = i * 3 + j;
}
}
鋸齒數(shù)組可以初始化如下:
int[][] matrix = new int[][] {
new int[] {0,1,2},
new int[] {3,4,5},
new int[] {6,7,8,9}
};
有兩種方法可以縮短數(shù)組初始化表達(dá)式。
第一個(gè)是省略new運(yùn)算符和類型限定:
char[] vowels = {"a","e","i","o","u"};
int[,] rectangularMatrix = {
{0,1,2},
{3,4,5},
{6,7,8}
};
int[][] jaggedMatrix = {
new int[] {0,1,2},
new int[] {3,4,5,2,2,2,2},
new int[] {6,7,8}
};
第二種方法是使用var
關(guān)鍵字,它告訴編譯器隱式地鍵入一個(gè)局部變量:
var i = 3; // i is implicitly of type int
var s = "asdf"; // s is implicitly of type string
var rectMatrix = new int[,]{
{0,1,2},
{3,4,5},
{6,7,8}
};
var jaggedMatrix = new int[][]{
new int[] {0,1,2},
new int[] {3,4,5},
new int[] {6,7,8}
};
我們可以省略new
關(guān)鍵字后的類型限定符,并讓編譯器推斷數(shù)組類型:
var letters = new [] {'a','e','i','o','u'}; //編譯器推斷char []
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: