将 Int[] 数组向下转换为 Byte[] 数组
Down casting an array of Int[] into an array of Byte[]
有没有一种简单的方法可以将整数数组向下转换为字节数组?
本质上,我想做以下事情(不能按原样工作):
int[] myIntArray = new int[20];
byte[] byteArray = (byte[])myInArray;
这样做的原因是,在我的应用程序中,myIntArray 实际上是一个 byte[],但被声明为一个 int[]。这意味着只对 myIntArray 中的最低有效字节感兴趣。
尝试使用 Linq Select
byte[] byteArray = myIntArray.Select(i=> (byte)i).ToArray();
您可能认为这可行:
byte[] myByteArray = myIntArray.Cast<byte>().ToArray();
但它没有 - 见 Why Enumerable.Cast raises an InvalidCastException?
您可以使用 Select
投影到新阵列。
byte[] myByteArray = myIntArray.Select(i => (byte)i).ToArray();
有没有一种简单的方法可以将整数数组向下转换为字节数组?
本质上,我想做以下事情(不能按原样工作):
int[] myIntArray = new int[20];
byte[] byteArray = (byte[])myInArray;
这样做的原因是,在我的应用程序中,myIntArray 实际上是一个 byte[],但被声明为一个 int[]。这意味着只对 myIntArray 中的最低有效字节感兴趣。
尝试使用 Linq Select
byte[] byteArray = myIntArray.Select(i=> (byte)i).ToArray();
您可能认为这可行:
byte[] myByteArray = myIntArray.Cast<byte>().ToArray();
但它没有 - 见 Why Enumerable.Cast raises an InvalidCastException?
您可以使用 Select
投影到新阵列。
byte[] myByteArray = myIntArray.Select(i => (byte)i).ToArray();