En C#, es posible inicializar una matriz multidimensional utilizando constantes de este modo:Inicialización matrices multidimensionales en C# (con otros arreglos)
Object[,] twodArray = new Object[,] { {"00", "01", "02"},
{"10", "11", "12"},
{"20", "21", "22"} };
Personalmente pienso inicializar una matriz con constantes cifrados duros es una especie de inútil para cualquier cosa que no sean ejercicios de prueba. De todos modos, lo que necesito desesperadamente hacer es inicializar una nueva matriz multidimensional como la anterior utilizando matrices existentes. (Que tienen el mismo recuento de elementos, pero los contenidos, por supuesto, solo se definen en tiempo de ejecución).
Una muestra de lo que me gustaría hacer es.
Object[] first = new Object[] {"00", "01", "02"};
Object[] second = new Object[] {"10", "11", "12"};
Object[] third = new Object[] {"20", "21", "22"};
Object[,] twodArray = new Object[,] { first, second, third };
Desafortunadamente, esto no se compila como código válido. Curiosamente, cuando traté
Object[,] twodArray = new Object[,] { {first}, {second}, {third} };
El código hizo compilar y ejecutar, sin embargo, el resultado no fue el deseado - una matriz de 3 por 3 de los objetos, lo que salió fue una matriz de 3 por 1 de las matrices, cada uno de los cuales tenía 3 elementos. Cuando eso sucede, no puedo acceder a mi matriz mediante:
Object val = twodArray[3,3];
tengo que ir:
Object val = twodArray[3,1][3];
que obviamente no es el resultado deseado.
Entonces, ¿hay alguna manera de inicializar esta nueva matriz 2D desde varias matrices existentes sin recurrir a la iteración?
se oponga [] {primera, segunda, tercera}; tiene sentido en lugar de Object [,] {first, second, third}; (eliminar coma dimensional)? debe notarse como twoarray [3] [3] –