10

在努力使 .NET BitArray 类满足我的需求后,我决定在网络上寻找更强大的开源或商业类。令我惊讶的是,我找不到一个。我看到了各种关于扩展方法或解决 BitArray 功能限制的方法的建议,但没有类似于 BitArray 替换的方法。

我们是否都在通过扩展或替换 BitArray 来重新发明轮子?

理想情况下,替代品应具有以下部分/全部功能:

  1. 实现IList<bool>而不仅仅是ICollection.

  2. 可以转换为各种其他类型,例如 int(最多 32 位 BitArrays)、bool(对于一位 BitArrays)、double 等。

  3. 实现产生字节数组的 ToArray 类型的方法。它可以被参数化为字节序。由于 BitArray 可以从构造函数中的字节数组参数构造,因此能够将其返回到字节数组似乎是一个很好的闭包。

  4. 能够从中提取子位数组。例如,从像 111101 这样的数组中,您可以提取位 1 到 4,从而产生一个新的位数组 1110。

  5. 位移运算符。

  6. 处理不确定长度的位(就像 BitArray 一样),但仍然可以转换为有限的类型,如 int,就像您可以将 long 转换为 int 一样,如果您知道它适合的话。

  7. ?__我敢打赌人们的愿望清单上还有很多其他项目。

你知道那里有任何开源或商业实现吗?如果它是开源的,最好有一个非互惠的许可证,例如 Apache、MIT 或 Ms-Pl。

4

1 回答 1

5

也许您正在System.Numerics 命名空间中寻找BigInteger ?它当然看起来可以做任何你要求的事情。

于 2011-04-27T20:32:35.690 回答