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