从长远来看,我知道如何做到这一点:通过创建一个必要大小的字节数组并使用 for 循环从 int 数组中转换每个元素。
我想知道是否有更快的方法,因为如果 int
大于 sbyte
,上面的方法似乎会中断。
最佳答案
如果您想要按位复制,即从一个 int 中获取 4 个字节,则使用 Buffer.BlockCopy
:
byte[] result = new byte[intArray.Length * sizeof(int)];
Buffer.BlockCopy(intArray, 0, result, 0, result.Length);
不要使用 Array.Copy
,因为它会尝试转换而不仅仅是复制。有关详细信息,请参阅 MSDN 页面上的备注。
关于c# - 在 C# 中将 int[] 转换为 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5896680/