В C # можно инициализировать многомерный массив, используя константы, например:
Object[,] twodArray = new Object[,] { {"00", "01", "02"},
{"10", "11", "12"},
{"20", "21", "22"} };
Лично я считаю, что инициализация массива с жестко закодированными константами бесполезна для чего-либо, кроме тестовых упражнений. В любом случае, мне крайне необходимо инициализировать новый многомерный массив, как описано выше, с использованием существующих массивов. (Которые имеют одинаковое количество элементов, но содержимое, конечно, определяется только во время выполнения).
Пример того, что я хотел бы сделать.
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 };
К сожалению, это не компилируется как допустимый код. Забавно, когда я попробовал
Object[,] twodArray = new Object[,] { {first}, {second}, {third} };
Код сделал , скомпилировал и запустил, однако результат был не таким, как хотелось - массив объектов 3 на 3, в результате получился массив массивов 3 на 1, каждый из которых имел 3 элемента , Когда это происходит, я не могу получить доступ к своему массиву, используя:
Object val = twodArray[3,3];
Мне нужно идти:
Object val = twodArray[3,1][3];
Что явно не является желаемым результатом.
Итак, есть ли способ инициализировать этот новый 2D-массив из нескольких существующих массивов, не прибегая к итерации?