在努力使 .NET BitArray 类满足我的需求后,我决定在网络上寻找更强大的开源或商业类。令我惊讶的是,我找不到一个。我看到了各种关于扩展方法或解决 BitArray 功能限制的方法的建议,但没有类似于 BitArray 替换的方法。
我们是否都在通过扩展或替换 BitArray 来重新发明轮子?
理想情况下,替代品应具有以下部分/全部功能:
实现
IList<bool>
而不仅仅是ICollection
.可以转换为各种其他类型,例如 int(最多 32 位 BitArrays)、bool(对于一位 BitArrays)、double 等。
实现产生字节数组的 ToArray 类型的方法。它可以被参数化为字节序。由于 BitArray 可以从构造函数中的字节数组参数构造,因此能够将其返回到字节数组似乎是一个很好的闭包。
能够从中提取子位数组。例如,从像 111101 这样的数组中,您可以提取位 1 到 4,从而产生一个新的位数组 1110。
位移运算符。
处理不确定长度的位(就像 BitArray 一样),但仍然可以转换为有限的类型,如 int,就像您可以将 long 转换为 int 一样,如果您知道它适合的话。
?__我敢打赌人们的愿望清单上还有很多其他项目。
你知道那里有任何开源或商业实现吗?如果它是开源的,最好有一个非互惠的许可证,例如 Apache、MIT 或 Ms-Pl。