C# 内存流到sbyte[]

C# 内存流到sbyte[],c#,.net,memorystream,C#,.net,Memorystream,我仍在尝试使用Novell的c#库将jpeg图像添加到OpenLDAP中的个人: Novell.Directory.Ldap.Ldap属性有一个具有以下签名的构造函数: public LdapAttribute(string attrName, sbyte[] attrBytes) 所以,我打算用这个。但是,如何将jpeg图像从MemoryStream转换为sbyte[] MemoryStream.ToArray() 方法返回字节[],但我不知道如何执行该操作。您可以这样转换数组: Ar

我仍在尝试使用Novell的c#库将jpeg图像添加到OpenLDAP中的个人:

Novell.Directory.Ldap.Ldap属性有一个具有以下签名的构造函数:

public LdapAttribute(string attrName, sbyte[] attrBytes)
所以,我打算用这个。但是,如何将jpeg图像从MemoryStream转换为sbyte[]

MemoryStream.ToArray() 

方法返回字节[],但我不知道如何执行该操作。

您可以这样转换数组:

Array.ConvertAll(bytes, b => (sbyte)b)

可以按如下方式转换阵列:

Array.ConvertAll(bytes, b => (sbyte)b)

在CLR上,您可以将
byte[]
恒定时间转换为
sbyte[]


在CLR上,您可以将
byte[]
恒定时间转换为
sbyte[]


比我的
MemoryStream.ToArray()好多了。选择(a=>(sbyte)a.ToArray()
我要发布的想法。谢谢你的回答。但在原始数组中有大于127的值。会发生什么?会导致错误吗?转换不会使图像无法读取?@Oscar:它们将被视为负数;基础字节将不会更改。这必须在未选中的上下文中进行。实际上,C#
字节
是无符号的-@DavidCrowell:这正是他问这个问题的原因。比我的
MemoryStream.ToArray()好多了。选择(a=>(sbyte)a.ToArray()
我要发布的想法。谢谢你的回答。但在原始数组中有大于127的值。会发生什么?会导致错误吗?转换不会使图像无法读取?@Oscar:它们将被视为负数;基础字节将不会更改。这必须在未选中的
上下文中完成。实际上,C#
字节
是无符号的-@DavidCrowell:这正是他问这个问题的原因。