如何将sbyte []转换为字节数组? C#.NET

时间:2010-07-07 16:04:40

标签: casting bitarray

我正在尝试集成两个处理图像的系统。一个系统提供图像作为sbyte [],另一个系统使用BitArray。我需要从sbyte[]获取数据并将其转换为BitArray。有谁知道怎么做?

谢谢,保罗

2 个答案:

答案 0 :(得分:1)

最简单的方法是将sbyte[]转换为byte[],然后将其传递给普通的BitArray构造函数。如果您使用的是.NET 3.5,那么使用LINQ很容易:

byte[] bytes = sbytes.Select(s => (byte) s).ToArray();
BitArray bitArray = new BitArray(bytes);

这假设您已在未经检查的上下文中执行。否则,您可能希望明确取消选中转换:

byte[] bytes = sbytes.Select(s => unchecked((byte) s)).ToArray();
BitArray bitArray = new BitArray(bytes);

答案 1 :(得分:0)

BitArray有一个constructor,它接受​​一个你可能尝试的字节数组:

sbyte[] sbytes = ...
BitArray ba = new BitArray(sbytes.Select(x => (byte)x).ToArray());
相关问题