BitConverter.ToDouble(byte[], int)
использует восемь байтов для построения 64-битного двойного числа, что объясняет вашу проблему (как только вы перейдете к 7-му последнему элементу, больше не останется восемь байтов). Я предполагаю, что это , а не , что вы хотите сделать, в зависимости от того, как вы настроили свой цикл.
Я полагаю, вы хотите что-то вроде:
for(int i = 0; i < index; i++)
{
dImageArray[i] = (double)imageArray[i];
}
Редактировать - или используя LINQ, просто для удовольствия:
double[] dImageArray = imageArray.Select(i => (double)i).ToArray();
С другой стороны ...
Если BitConverter
- это определенно то, что вы хотите, тогда вам понадобится что-то вроде:
double[] dImageArray = new double[imageArray.Length / 8];
for (int i = 0; i < dImageArray.Length; i++)
{
dImageArray[i] = BitConverter.ToDouble(imageArray, i * 8);
}
Опять же, основываясь на вашем коде, я думаю, что первое решение - это то, что вам нужно.