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
prueba esto :
string[,] myArray = new string[3,3];
eche un vistazo en http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx
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"} };