tolist()
отлично работает даже при обнаружении вложенного массива, например pandas DataFrame
;
my_list = [0,1,2,3,4,5,4,3,2,1,0]
my_dt = pd.DataFrame(my_list)
new_list = [i[0] for i in my_dt.values.tolist()]
print(type(my_list),type(my_dt),type(new_list))
Править: Предположение ниже не корректно, у меня был шанс разжечь мой IDE позже и протестированный с и без Записи, и оба заполнили MemoryStream правильно.
Я думаю, что необходимо записать в MemeoryStream сначала.
Как будто моя память (никакая предназначенная игра слов) служит мне правильно это:
MemoryStream ms = new MemoryStream(byteArrayIn);
Создает поток памяти того размера.
Затем необходимо записать содержание массива байтов в поток памяти:
ms.Write(byteArrayIn, 0, byteArrayIn.Length);
Посмотрите, фиксирует ли это его.
Хорошо, я нашел проблему, и это было от части кода, не связанного с частью кода, о котором я спрашивал. Данные передавались как строка, я преобразовывал их в массив байтов (это было тестовой буровой установкой, таким образом, я пытался моделировать массив байтов, что я вхожу в главное приложение), затем преобразовывая это в MemoryStream, затем делая Изображение из этого.
То, что мне не удалось понять, было то, что строка была закодированным Base64. Вызов Convert.FromBase64String()
вызванный это для превращений в массив байтов, который не уничтожил бы Image.FromStream()
метод.
Так в основном это свелось к глупой ошибке с моей стороны. Но эй, код выше все еще полезен, и эта страница будет, вероятно, служить результатом Google относительно того, как избежать этой ошибки кому-то еще.
Кроме того, я нашел простой способ создать Многостраничный TIFF из моих массивов байтов здесь.