В С# можно инициализировать многомерный массив, используя такие константы:
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-массив из нескольких существующих массивов, не прибегая к итерации?