gpt4 book ai didi

c# - 将多个类型组合成一个字节数组

转载 作者:太空宇宙 更新时间:2023-11-03 20:55:37 25 4
gpt4 key购买 nike

将多个不同类型的变量组合成单个字节数组的最有效方法是什么?

采用以下示例数据:

short a = 500;
byte b = 10;
byte[] c = new byte[4];

如何在不浪费太多时间和内存的情况下将这三个变量组合成一个字节数组?

可以这样想(伪代码):

var combinedArray = new byte[] { a, b, c };

我想到了不同的方法,包括不安全代码,使用 BitConverter 和使用 Linq 的 Concat 将它们转换为 byte[]

最后我需要一个数组,而不仅仅是一个 IEnumerable,因为我需要通过 udp 发送这些数据。

有没有什么方法是我没有想到的?

最佳答案

结合使用 BinaryWriter 和 MemoryStream。

var buffer = new MemoryStream();   
var writer = new BinaryWriter(buffer);

writer.Write(a);
writer.Write(b);
writer.Write(c);

writer.Close();
byte[] bytes = buffer.ToArray();

但请注意,没有填充或对齐。数组 c 将从奇数偏移量开始。

您还必须与您的客户验证 Big Endian/Little Endian 契约(Contract)。

关于c# - 将多个类型组合成一个字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50891534/

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