Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# sbyte[]的AsBuffer()?_C#_.net_Byte_Uwp - Fatal编程技术网

C# sbyte[]的AsBuffer()?

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

我正在做一个小任务,需要从字节数组创建IBuffer实例

对于常规字节数组,System.Runtime.InteropServices.WindowsRuntime中的
.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();