C# 多維數(shù)組

C#支持最多32個維度的多維數(shù)組??梢酝ㄟ^在方括號中添加逗號來聲明多維數(shù)組。例如,[,]聲明二維數(shù)組,[,,]聲明三維數(shù)組,[,,,]聲明四維數(shù)組,等等。所以,在多維數(shù)組中,逗號的數(shù)目=維數(shù)的數(shù)目-1。

聲明多維數(shù)組

int[,] arr2d; // 二維數(shù)組
int[, ,] arr3d; // 三維數(shù)組
int[, , ,] arr4d ; // 四維數(shù)組
int[, , , ,] arr5d; // 五維數(shù)組

二維數(shù)組

讓我們了解二維數(shù)組。下面初始化二維數(shù)組。

int[,] arr2d = new int[3,2]{ 
                                {1, 2}, 
                                {3, 4}, 
                                {5, 6} 
                            };

//或 
int[,] arr2d = { 
                    {1, 2}, 
                    {3, 4}, 
                    {5, 6} 
                };

在上面的二維數(shù)組示例中,[3,2]定義了行和列的數(shù)目。第一列表示行數(shù),第二列定義列數(shù)。下圖演示了分為行和列的二維數(shù)組。

二維數(shù)組
二維數(shù)組

二維數(shù)組的以下訪問值。

int[,] arr2d = new int[3,2]{ 
                                {1, 2}, 
                                {3, 4}, 
                                {5, 6} 
                            };

arr2d[0, 0]; //返回1
arr2d[0, 1]; //返回2
arr2d[1, 0]; //返回3
arr2d[1, 1]; //返回4
arr2d[2, 0]; //返回5
arr2d[2, 1]; //返回6
//arr2d[3, 0]; //拋出運行時錯誤,因為沒有第四行

在上面的示例中,二維數(shù)組的值可以通過行和列的索引號[行索引,列索引]來訪問。因此,[0, 0]返回第一行和第一列[1, 1]的值,并返回第二行和第二列的值。

三維數(shù)組

現(xiàn)在,讓我們了解三維數(shù)組。以下聲明并初始化三維數(shù)組。

int[, ,] arr3d1 = new int[1, 2, 2]{
                { { 1, 2}, { 3, 4} }
            };

int[, ,] arr3d2 = new int[2, 2, 2]{
                { {1, 2}, {3, 4} },
                { {5, 6}, {7, 8} }
            };

int[, ,] arr3d3 = new int[2, 2, 3]{
                { { 1, 2, 3}, {4, 5, 6} },
                { { 7, 8, 9}, {10, 11, 12} }
            };

arr3d2[0, 0, 0]; // 返回1 
arr3d2[0, 0, 1]; // 返回2 
arr3d2[0, 1, 0]; // 返回3 
arr3d2[0, 1, 1]; // 返回4 
arr3d2[1, 0, 0]; // 返回5 
arr3d2[1, 0, 1]; // 返回6 
arr3d2[1, 1, 0]; // 返回7 
arr3d2[1, 1, 1]; // 返回8

正如你在上面的實例中看到的,arr3d1的[1,2,2]指定它將包含二維數(shù)組[2,2]中的一行。arr3d2指定維數(shù)[2,2,2],表示包含二維數(shù)組[2,2]的兩行。因此,第一列表示內(nèi)部二維數(shù)組的行數(shù)。

四維數(shù)組

現(xiàn)在,看下面的四維數(shù)組。

int[,,,] arr4d1 = new int[1, 1, 2, 2]{
                { 
                    { { 1, 2}, { 3, 4} }     
                }
            };

arr4d1[0, 0, 0, 0]; // 返回1
arr4d1[0, 0, 0, 1]; // 返回2
arr4d1[0, 0, 1, 0]; // 返回3
arr4d1[0, 0, 1, 1]; // 返回4

int[,,,] arr4d2 = new int[1, 2, 2, 2]{
		{
			{ {1, 2}, {3, 4} },
			{ {5, 6}, {7, 8} }
		}
	};

arr4d2[0, 0, 0, 0]; // 返回1
arr4d2[0, 0, 0, 1]; // 返回2
arr4d2[0, 0, 1, 0]; // 返回3
arr4d2[0, 0, 1, 1]; // 返回4
arr4d2[0, 1, 0, 0]; // 返回5
arr4d2[0, 1, 0, 1]; // 返回6
arr4d2[0, 1, 1, 0]; // 返回7
arr4d2[0, 1, 1, 1]; // 返回8

在上面的示例中,四維數(shù)組arr4d1指定[1、1、2、2],這表示它包含三維數(shù)組的一行。

以相同的方式,您可以在C#中聲明和初始化5維,6維數(shù)組以及最多32維數(shù)組。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清