У меня есть System.Array
типов значение структуры, что-то вроде этого:Как преобразовать массив значения struct в байты?
public value struct Position
{
int timestamp;
float x;
float y;
}
Position[] positions = new Position[1000 * 1000];
После того как я инициализировать массив со значениями, как я могу получить byte[]
из его содержания, без сериализации одного пункта в то время?
В C++/CLI я бы использовал pin_ptr
, чтобы получить указатель на содержимое массива, и я бы скопировал данные оттуда. Могу ли я сделать что-то подобное на C#?
EDIT: Мне нужно записать необработанные данные на диск, как если бы это была структура C, без какой-либо сериализации.
Я отметил этот вопрос как C# для более широкой экспозиции, но на самом деле я пытаюсь сериализовать данные из IronPython, поэтому это означает, что я не могу использовать любые функциональные возможности C# unsafe
.
Не работает 'Convert.GetBytes()'? – Default
Дубликат: http://stackoverflow.com/questions/1068541/how-to-convert-a-value-type-to-byte-in-c – Kugel
@Default: если вы имеете в виду «BitConverter.GetBytes», нет , он не работает. Он возвращает 'byte []' с одним байтом внутри – Meh