string[][] Tablero = new string[3][3];
Necesito tener una disposición de matriz de 3x3 para guardar información. ¿Cómo declaro esto en C #?
string[][] Tablero = new string[3][3];
Necesito tener una disposición de matriz de 3x3 para guardar información. ¿Cómo declaro esto en C #?
Respuestas:
string[,] Tablero = new string[3,3];
También puede instanciarlo 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"} };
var tablero = new string[3,3];
si está usando C # 3 o posterior
new string[,]
)
new string[,]
nada ...string [,] Tablero = {{"a","b","c"}, {"d","e","f"}, {"g","h","i"} }
Probablemente quieras esto:
string[,] Tablero = new string[3,3];
Esto le creará una matriz en forma de matriz donde todas las filas tienen la misma longitud.
La matriz en su muestra es una llamada matriz irregular , es decir, una matriz de matrices donde los elementos pueden ser de diferente tamaño. Una matriz dentada debería 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 irregular:
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"}
};
Acaba de declarar una matriz irregular. 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 su caso, necesita una matriz regular. Vea las respuestas arriba. Más sobre matrices dentadas
Supongo que estás buscando esto:
string[,] Tablero = new string[3,3];
La sintaxis de una matriz irregular es:
string[][] Tablero = new string[3][];
for (int ix = 0; ix < 3; ++ix) {
Tablero[ix] = new string[3];
}
Hay 2 tipos de matrices multidimensionales en C #, llamadas Multidimensional
y Jagged
.
Para multidimensionales puedes:
cadena [,] multi = nueva cadena [3, 3];
Para una matriz irregular, debe 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 irregular es más rápida y tiene una sintaxis intuitiva. Para obtener más información, consulte: esta pregunta de Stackoverflow
string[][] jagged = { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
o var jagged = new[] { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
prueba esto :
string[,] myArray = new string[3,3];
eche un vistazo a http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx
string[,] Tablero = new string[3,3];
string[][]
no es una matriz bidimensional, es una matriz de matrices (una matriz irregular ). Eso es algo diferente.
Para declarar una matriz bidimensional, use esta sintaxis:
string[,] tablero = new string[3, 3];
Si realmente desea una matriz dentada , debe inicializarla así:
string[][] tablero = new string[][] { new string[3],
new string[3],
new string[3] };
También se puede inicializar una matriz 3x3 (multidimensional) (ya la ha declarado) de esta manera:
string[,] Tablero = {
{ "a", "b", "c" },
{ "d", "e", "f" },
{ "g", "h", "i"}
};
Cuando intentas crear una matriz multidimensional, todo lo que necesitas hacer es agregar una coma a la declaración así:
string[,] tablero = new string[3,3].
también puede 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 (..)' puede elegir el tipo de su matriz, es decir, int, string, double
Hay muchos ejemplos sobre cómo trabajar con matrices en C # aquí .
Espero que esto ayude.
Gracias Damian