English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Basic Tutorial

C# Advanced Tutorial

C# Object-Oriented (OOP)

C# Multidimensional array

C# supports up to 32-dimensional multidimensional arrays. Multidimensional arrays can be declared by adding commas in the brackets. For example, [] declares a two-dimensional array, [,,] declares a three-dimensional array, [,,,] declares a four-dimensional array, etc. So, the number of commas in the multidimensional array = the number of dimensions - 1.

Declare multidimensional array

int[, ] arr2d; // two-dimensional array
int[, ,] arr3d; // three-dimensional array
int[, , ,] arr4d ; // four-dimensional array
int[, , , ,] arr5d; // five-dimensional array

Two-dimensional array

Let's understand two-dimensional arrays. Below is the initialization of a two-dimensional array.

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

In the above example of a two-dimensional array, [3, 2] defines the number of rows and columns. The first column represents the number of rows, and the second column defines the number of columns. The following figure demonstrates a two-dimensional array divided into rows and columns.

Two-dimensional array

The following access values of a two-dimensional array.

int[, ] arr2d = new int[3,2]{ 
                                {1, 2}, 
                                {3, 4}, 
                                {5, 6} 
                            };
arr2d[0, 0]; //return 1
arr2d[0, 1]; //return 2
arr2d[1, 0]; //return 3
arr2d[1, 1]; //return 4
arr2d[2, 0]; //return 5
arr2d[2, 1]; //return 6
//arr2d[3, 0]; //throw runtime error, as there is no fourth line

في المثال السابق، يمكن الوصول إلى قيم مصفوفة ثنائية الأبعاد من خلال أرقام الفئة والصف [فئة الصف، فئة الصف]. لذلك، [0, 0] تعود إلى القيمة في الصف الأول والعمود الأول [1, 1] وتعود إلى القيمة في الصف الثاني والعمود الثاني.

مصفوفة ثلاثة أبعاد

الآن، دعونا نتعرف على مصفوفة ثلاثة أبعاد. يلي إعلان وتحديد مصفوفة ثلاثة أبعاد.

int[, ,] arr3d1 = new int[1, , 2]{
                { { 1, 2}, { 3, 4} }
            };
int[, ,] arr3d2 = new int[2, , 2]{
                { {1, 2}, {3, 4} },
                { {5, 6}, {7, 8} }
            };
int[, ,] arr3d3 = new int[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] يحدد أنه سيحتوي على صف من مصفوفة ثنائية الأبعاد [2,2]. arr3d2 يحدد الأبعاد [2,2,2]، مما يعني أن يحتوي على صفين من مصفوفة ثنائية الأبعاد [2,2]. لذلك، العمود الأول يحدد عدد الصفوف في المصفوفة الثنائية الداخلية.

مصفوفة أربعة أبعاد

الآن، انظر إلى مصفوفة أربعة أبعاد أدناه.

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

在上面的示例中,四维数组arr4d1指定[1、1、2、2],这表示它包含三维数组的一行。

以相同的方式,您可以在C#中声明和初始化5维,6维数组以及最多32维数组。