sta*_*eUp 0 c# arrays data-conversion
有没有一种简单的方法将整数数组向下转换为字节数组?
本质上,我想做以下事情(这不能按原样工作):
int[] myIntArray = new int[20];
byte[] byteArray = (byte[])myInArray;
Run Code Online (Sandbox Code Playgroud)
这样做的原因是在我的应用程序中 myIntArray 实际上是一个 byte[],但被声明为 int[]。这意味着只有 myIntArray 中的最低有效字节是有意义的。
您可能认为这会起作用:
byte[] myByteArray = myIntArray.Cast<byte>().ToArray();
Run Code Online (Sandbox Code Playgroud)
但它没有 - 请参阅为什么 Enumerable.Cast 引发 InvalidCastException?
您可以使用Selectwhile 来投影到新数组。
byte[] myByteArray = myIntArray.Select(i => (byte)i).ToArray();
Run Code Online (Sandbox Code Playgroud)
现场演示: https: //rextester.com/KVR50332