10

.NET BitArrayクラスを自分のニーズに合わせて機能させるのに苦労した後、私はWeb上でより堅牢なオープンソースまたは商用のクラスを探すことにしました。驚いたことに、1つも見つかりません。拡張方法やBitArray機能の制限を回避する方法についてさまざまな提案がありますが、BitArrayの置き換えに似たものはありません。

BitArrayを拡張または交換することで、私たち全員が車輪の再発明を行っていますか?

理想的には、交換にはこれらの機能の一部/すべてが含まれます。

  1. IList<bool>だけでなく実装しICollectionます。

  2. int(最大32ビットのBitArrayの場合)、bool(1ビットのBitArrayの場合)、doubleなどの他のさまざまなタイプにキャストできます。

  3. バイト配列を生成するToArrayタイプのメソッドを実装します。エンディアンのためにパラメータ化される場合があります。BitArrayはコンストラクターのバイト配列パラメーターから構築できるため、バイト配列に戻すことができるのは良いクロージャーのようです。

  4. そこからサブBitArrayを抽出する機能。たとえば、111101のような配列から、ビット1から4を抽出して、1110の新しいBitArrayを生成できます。

  5. ビットシフト演算子。

  6. (BitArrayのように)不定の長さのビットを処理しますが、適切であることがわかっている場合にlongをintにキャストできるのと同じように、intなどの限定された型にキャストできます。

  7. ?__人々のウィッシュリストには他にもたくさんのアイテムがあるに違いありません。

オープンソースまたは商用の実装を知っていますか?オープンソースの場合は、Apache、MIT、Ms-Plなどの非相互ライセンスがあれば便利です。

4

1 に答える 1

5

おそらく、System.Numerics名前空間でBigIntegerを探していますか?それは確かにあなたが求めていることは何でもできるように見えます。

于 2011-04-27T20:32:35.690 に答える