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

C# Matrices multidimensionales

C# admite hasta32matrices de múltiples dimensiones. Se puede declarar una matriz multidimensional mediante la adición de comas en los corchetes. Por ejemplo, [ , ] declara un array bidimensional, [ , , ] declara un array tridimensional, [ , , ,] declara un array cuadridimensional, etc. Por lo tanto, el número de comas = el número de dimensiones-1.

Declaración de matriz multidimensional

int[,  , ] arr2d; // Array bidimensional
int[,  , ] arr3d; // Matriz tridimensional
int[,  ,  ,] arr4d; // Cuatro dimensiones de matriz
int[,  ,  ,  ,] arr5d; // Matriz quinquedimensional

Array bidimensional

Permítenos entender el array bidimensional. A continuación, se inicializa un array bidimensional.

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

En el ejemplo de array bidimensional anterior, [3,2]define el número de filas y columnas. La primera columna representa el número de filas, la segunda columna define el número de columnas. La siguiente imagen muestra un array bidimensional dividido en filas y columnas.

Array bidimensional

Los siguientes valores de acceso del array bidimensional.

int[,  , ] arr2d = new int[3,2]{ 
                                {1, 2}, 
                                {3, 4}, 
                                {5, 6} 
                            };
arr2d[0, 0]; //Devuelve1
arr2d[0, 1]; //Devuelve2
arr2d[1, 0]; //Devuelve3
arr2d[1, 1]; //Devuelve4
arr2d[2, 0]; //Devuelve5
arr2d[2, 1]; //Devuelve6
//arr2d[3, 0]; //lanza un error en tiempo de ejecución, porque no hay cuarta fila

En el ejemplo anterior, el valor del array bidimensional se puede acceder mediante los índices de filas y columnas [índice de fila, índice de columna]. Por lo tanto, [0, 0] devuelve la primera fila y la primera columna [1, 1]valor, y devuelve el valor de la segunda fila y la segunda columna.

Matriz tridimensional

Ahora, permítenos entender la matriz tridimensional. A continuación, se declara e inicializa una matriz tridimensional.

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]; // Devuelve1 
arr3d2[0, 0, 1]; // Devuelve2 
arr3d2[0, 1, 0]; // Devuelve3 
arr3d2[0, 1, 1]; // Devuelve4 
arr3d2[1, 0, 0]; // Devuelve5 
arr3d2[1, 0, 1]; // Devuelve6 
arr3d2[1, 1, 0]; // Devuelve7 
arr3d2[1, 1, 1]; // Devuelve8

Como puedes ver en el ejemplo anterior, arr3d1de[1,2,2]especifica que contendrá el array bidimensional [2,2fila en el array [arr3d2especificar el número de dimensiones[2,2,2representa que contiene el array bidimensional [2,2Las dos filas. Por lo tanto, la primera columna representa el número de filas del array bidimensional interno.

Cuatro dimensiones de matriz

Ahora, vea la matriz cuádruple siguiente。

int[,,,] arr4d1 = new int[1, 1, 2, 2]{
                { 
                    { { 1, 2} 3, 4}     
                }
            };
arr4d1[0, 0, 0, 0]; // Devuelve1
arr4d1[0, 0, 0, 1]; // Devuelve2
arr4d1[0, 0, 1, 0]; // Devuelve3
arr4d1[0, 0, 1, 1]; // Devuelve4
int[,,,] arr4d2 = new int[1, 2, 2, 2]{
		{
			{ {1, 2}3, 4} },
			{ {5, 6}7, 8}
		}
	};
arr4d2[0, 0, 0, 0]; // Devuelve1
arr4d2[0, 0, 0, 1]; // Devuelve2
arr4d2[0, 0, 1, 0]; // Devuelve3
arr4d2[0, 0, 1, 1]; // Devuelve4
arr4d2[0, 1, 0, 0]; // Devuelve5
arr4d2[0, 1, 0, 1]; // Devuelve6
arr4d2[0, 1, 1, 0]; // Devuelve7
arr4d2[0, 1, 1, 1]; // Devuelve8

En el ejemplo anterior, el array cuádruple arr4d1Especificar [1、1、2、2],这表示它包含三维数组的一行。

De la misma manera, puede declarar e inicializar en C#5dimensión,6Matriz y hasta32Matriz.