Mehrdad предполагает, что ширина один, так как нет никакого реального способа определить ширину или высоту от одномерного массива сам по себе. Если у вас есть (вне) понятие «ширины», то код Мердад становится:
// assuming you have a variable with the 'width', pulled out of a rabbit's hat
int height = original.Length/width;
double[,] arr = new double[width, height];
int x = 0;
int y = 0;
for (int i = 0; i < original.Length; ++i)
{
arr[x, y] = original[i];
x++;
if (x == width)
{
x = 0;
y++;
}
}
Хотя ряд основных, вероятно, более широко распространена во многих приложениях (матрицы, текстовые буферы или графики):
// assuming you have a variable with the 'width', pulled out of a rabbit's hat
int height = original.Length/width;
double[,] arr = new double[height, width]; // note the swap
int x = 0;
int y = 0;
for (int i = 0; i < original.Length; ++i)
{
arr[y, x] = original[i]; // note the swap
x++;
if (x == width)
{
x = 0;
y++;
}
}
@alexw Хороший улов. Я собираюсь удалить свой предыдущий комментарий. – shoelzer