C# sbyte[]的AsBuffer()?
我正在做一个小任务,需要从字节数组创建IBuffer实例 对于常规字节数组,System.Runtime.InteropServices.WindowsRuntime中的C# sbyte[]的AsBuffer()?,c#,.net,byte,uwp,C#,.net,Byte,Uwp,我正在做一个小任务,需要从字节数组创建IBuffer实例 对于常规字节数组,System.Runtime.InteropServices.WindowsRuntime中的.AsByte()扩展方法工作得很好,但是我的许多数组实际上是sbyte[](代码移植到遗留Java代码中,其中一些值定义为,例如新的sbyte[]{-86、27、28、29、-1}; 是否有一种扩展方法也涵盖了sbyte[]用例?不幸的是,关于sbyte数组操作(以及转换为字节数组)的信息不多。只需将sbyte[]转换为byt
.AsByte()
扩展方法工作得很好,但是我的许多数组实际上是sbyte[]
(代码移植到遗留Java代码中,其中一些值定义为,例如新的sbyte[]{-86、27、28、29、-1};
是否有一种扩展方法也涵盖了
sbyte[]
用例?不幸的是,关于sbyte数组操作(以及转换为字节数组)的信息不多。只需将sbyte[]
转换为byte[]
,然后使用另一种方法。下面是一个示例
sbyte[] signed = { -2, -1, 0, 1, 2 };
byte[] unsigned = (byte[]) (Array)signed;
您可以在
AsBuffer()之前尝试此转换方法
此方法是在.NET2.0中引入的,并存在于此后的所有版本中
名称空间:系统
程序集:mscorlib(在mscorlib.dll中)
编辑:
进一步聊天后,该代码似乎位于类库(便携式)
中,而不是常规的类库
中,因此ConvertAll
不可用
使用此版本可以实现上述功能
var signedBytes = new sbyte[] { -86, 27, 28, 29, -1 };
IBuffer buffer = signedBytes.Cast<byte>().ToArray().AsBuffer();
var signedBytes=newsbyte[]{-86,27,28,29,-1};
IBuffer buffer=signedBytes.Cast().ToArray().AsBuffer();
由于某些原因,ConvertAll数组扩展方法不存在。您能指定它的定义位置吗?我还希望从标记中可以明显看出我正在使用UWP:)我更新了我的答案,以包括文档和命名空间/程序集。它包括在内,但是由于某种原因,ConvertAll方法在Array类上不存在,无论是作为静态方法还是实例。这很奇怪。您的代码是在常规库项目中还是在做其他事情?
var signedBytes = new sbyte[] { -86, 27, 28, 29, -1 };
IBuffer buffer = signedBytes.Cast<byte>().ToArray().AsBuffer();