将字节数组转换为对象数组

Pa *_*Ddy 2 c# c#-4.0

可能重复:
无法将值类型数组转换为params对象[]

为什么是

object h = new byte();
Run Code Online (Sandbox Code Playgroud)

可能和

object[] h = new byte[5];
Run Code Online (Sandbox Code Playgroud)

不是?

如何将字节数组转换为对象数组?

谢谢!

Jon*_*eet 8

第一个示例包含单个值.

在第二个示例中,您尝试转换整个数组.那是行不通的.object数组的每个元素都是object变量.byte数组的每个元素都是一个byte变量.他们不共享代表 - 你不能这样做.

您可以很容易地从字节数组创建一个新的对象数组,例如

object[] objects = bytes.Cast<object>().ToArray();
Run Code Online (Sandbox Code Playgroud)

...但你不能把字节数组,就好像它一个对象数组.

或者,您可以使用System.Array与之兼容的类型byte[].这对你有帮助吗?

byte[] bytes = ...;
Array array = bytes;
Run Code Online (Sandbox Code Playgroud)