Я пытаюсь создать матрицу, содержащую массивы цветов. Но я делаю что-то не так.
Color[][,] map_clrs = new Color[64][ 8, 8 ];
Я хотел бы получить следующую структуру данных.
Я поставил Color[] первым, потому что предполагал, что это будет так же, как если бы вы делали это с помощью int[,]
{
{ Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64] },
{ Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64] },
{ Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64] },
{ Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64] },
{ Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64] },
{ Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64] },
{ Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64] },
{ Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64], Color[64] }
}
ОТВЕТ: это правильно?
Color[,][] map_clrs = new Color[8,8][];
Похоже, вы запрашиваете массив 64x8x8, что кажется странным. Может быть, вы используете C# в замешательстве здесь. Объясните на английском, каким должен быть результат, и это может прояснить.
Это может быть трехмерная матрица, но мне нужно иметь возможность извлекать последний уровень отдельно в виде массива.
Это для марширующих площадей. поэтому матрица предназначена для сетки X и Y, а массив будет массивом цветов, извлеченным из таблицы спрайтов.





Color[][,] map_clrs = new Color[64][,];
for(var i = 0;i<64;i++)
{
map_clrs[i] = new Color[8,8];
}
И для обратного:
Color[,][] map_clrs = new Color[8,8][];
for(var i = 0;i<8;i++)
{
for (var j=0;j<8;j++)
{
map_clrs[i,j] = new Color[64];
}
}
Спасибо за быстрый ответ @Joel Coehoorn, но я плохо объяснил. порядок обратный. Таким образом, матрица содержит массивы цветов в каждой точке. Я скорректировал свой вопрос.
@WouldBeNerd Обновлено
вам действительно нужно смешивать зубчатый
[][]и многомерный[,]массив?