c# - 在 C# 中将 int[] 转换为 byte[]

标签 c# arrays type-conversion

从长远来看,我知道如何做到这一点:通过创建一个必要大小的字节数组并使用 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/

相关文章:

java - 如何在 Java 中声明一个 uint8_t 数组

c# - 基于 IEnumerable<string> 过滤项目

c# - 运算符不能应用于类型为 'Method Group' 和 'int' 的操作数

c++ - 如何缩放二进制数组以保持值

javascript - 将javascript数组迭代结果转换为单行文本字符串

go - 自定义类型作为参数传递给函数

c# - 打开停靠在 WPF 中的 Windows 10 触摸键盘

C# 初始化语法

arrays - 在 swift 中使用数组的数组

c - void 表达式的无效使用 - 使用类型转换添加 2 个不同类型的指针