gpt4 book ai didi

c# - 如何将值结构数组转换为字节?

转载 作者:行者123 更新时间:2023-11-30 21:10:23 26 4
gpt4 key购买 nike

我有一个值结构类型的 System.Array,如下所示:

public value struct Position
{
int timestamp;
float x;
float y;
}

Position[] positions = new Position[1000 * 1000];

在我用值初始化数组后,如何获取其内容的 byte[],而不是一次序列化一个项目?

在 C++/CLI 中,我会使用 pin_ptr 获取指向数组内容的指针,然后从那里复制数据。我可以在 C# 中做这样的事情吗?

编辑:我需要将原始数据写入磁盘,就好像它是 C 结构一样,没有任何类型的序列化。

我将这个问题标记为 C# 以便更广泛地公开,但实际上我正在尝试序列化来自 IronPython 的数据,所以这意味着我不能使用任何 unsafe C# 功能。

最佳答案

也许这会有所帮助:

[Serializable()]
public struct Position
{
int timestamp;
float x;
float y;
}


static void Main(string[] args)
{
var positions = new Position[1000 * 1000];
GetBytes(positions);
}
private static byte[] GetBytes(object obj)
{
using (var memoryStream = new System.IO.MemoryStream())
{
var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
binaryFormatter.Serialize(memoryStream, obj);
return memoryStream.ToArray();
}
}

关于c# - 如何将值结构数组转换为字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8523309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com