画像を扱う2つのシステムを統合しようとしています。1つのシステムはsbyte[]として画像を提供し、もう1つのシステムはBitArrayを使用します。sbyte []からデータを取得し、それをBitArrayに変換する必要があります。誰もがこれを行う方法を知っていますか?
ありがとう、ポール
最も簡単な方法は、をに変換してsbyte[]
からbyte[]
、通常のBitArray
コンストラクターに渡すことです。LINQで簡単に.NET3.5を使用している場合:
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);
BitArrayには、試してみる可能性のあるバイト配列を受け取るコンストラクターがあります。
sbyte[] sbytes = ...
BitArray ba = new BitArray(sbytes.Select(x => (byte)x).ToArray());