una matriz llenar jagged inicializar declarar bidimensional arreglos arreglo array c# arrays multidimensional-array initialization array-initialization

c# - llenar - ¿Cómo puedo declarar una matriz de cadenas bidimensionales?



jagged array c# (12)

string[][] Tablero = new string[3][3];

Necesito tener una disposición de arreglo de 3x3 para guardar información. ¿Cómo declaro esto en C #?


Aquí hay muchos ejemplos sobre cómo trabajar con matrices en C #.

Espero que esto ayude.

Gracias, Damian


Cuando intenta crear una matriz multidimensional, todo lo que necesita hacer es agregar una coma a la declaración de esta manera:

string[,] tablero = new string[3,3].


Hay dos tipos de matrices multidimensionales en C #, llamadas Multidimensional y Jagged .

Para multidimensional puedes hacerlo por:

string[,] multi = new string[3, 3];

Para la matriz dentada, debes escribir un poco más de código:

string[][] jagged = new string[3][]; for (int i = 0; i < jagged.Length; i++) { jagged[i] = new string[3]; }

En resumen, la matriz dentada es más rápida y tiene una sintaxis intuitiva. Para más información vea: esta pregunta


Probablemente quieras esto:

string[,] Tablero = new string[3,3];

Esto creará una matriz similar a una matriz donde todas las filas tienen la misma longitud.

La matriz en su muestra es una llamada matriz dentada , es decir, una matriz de matrices donde los elementos pueden ser de diferentes tamaños. Una matriz dentada tendría que crearse de una manera diferente:

string[][] Tablero = new string[3][]; for (int i = 0; i < Tablero.GetLength(0); i++) { Tablero[i] = new string[3]; }

También puede usar inicializadores para llenar los elementos de la matriz con datos:

string[,] Tablero = new string[,] { {"1.1","1.2", "1.3"}, {"2.1","2.2", "2.3"}, {"3.1", "3.2", "3.3"} };

Y en el caso de una matriz dentada:

string[][] Tablero = new string[][] { new string[] {"1.1","1.2", "1.3"}, new string[] {"2.1","2.2", "2.3"}, new string[] {"3.1", "3.2", "3.3"} };


Supongo que estás buscando esto:

string[,] Tablero = new string[3,3];

La sintaxis para una matriz dentada es:

string[][] Tablero = new string[3][]; for (int ix = 0; ix < 3; ++ix) { Tablero[ix] = new string[3]; }


También se puede inicializar una matriz 3x3 (multidimensional) (ya la ha declarado) así:

string[,] Tablero = { { "a", "b", "c" }, { "d", "e", "f" }, { "g", "h", "i"} };


Usted acaba de declarar una matriz dentada. Este tipo de matrices puede tener diferentes tamaños para todas las dimensiones. Por ejemplo:

string[][] jaggedStrings = { new string[] {"x","y","z"}, new string[] {"x","y"}, new string[] {"x"} };

En tu caso, necesitas una matriz regular. Ver respuestas arriba. Más sobre arreglos dentados



también puedes escribir el código a continuación.

Array lbl_array = Array.CreateInstance(typeof(string), i, j);

donde ''i'' es el número de filas y ''j'' es el número de columnas. usando el método ''typeof (..)'' puedes elegir el tipo de tu array, es decir, int, string, double


string[][] no es una matriz bidimensional, es una matriz de matrices (una matriz dentada ). Eso es algo diferente.

Para declarar una matriz bidimensional, use esta sintaxis:

string[,] tablero = new string[3, 3];

Si realmente quieres una matriz dentada , necesitas inicializarla de esta manera:

string[][] tablero = new string[][] { new string[3], new string[3], new string[3] };


string[,] Tablero = new string[3,3];


string[,] Tablero = new string[3,3];

También puede crear una instancia en la misma línea con la sintaxis del inicializador de matriz de la siguiente manera:

string[,] Tablero = new string[3, 3] {{"a","b","c"}, {"d","e","f"}, {"g","h","i"} };