Después de esforzarme para hacer que la clase .NET BitArray funcione para mis necesidades, decidí buscar una fuente abierta o comercial más robusta en la web. Para mi sorpresa, no puedo encontrar uno solo. Veo varias sugerencias de métodos de extensión o formas de evitar los límites de la funcionalidad de BitArray, pero nada parecido a un reemplazo de BitArray.¿Alguien ha lanzado un BitArray más robusto para .NET?
¿Estamos todos reinventando la rueda extendiendo o reemplazando BitArray?
Idealmente, un reemplazo tendría algún/todas estas características:
Implementa
IList<bool>
en lugar de sóloICollection
.pueden transmitir contenido a otros diversos tipos, tales como int (para un máximo de BitArrays 32 bits), bool (por BitArrays de un bit), doble, etc.
implementa un tipo ToArray de método que los rendimientos una matriz de bytes Puede ser parametrizado para endianness. Dado que BitArray se puede construir a partir de un parámetro de matriz de bytes en el constructor, parece un buen cierre para poder devolverlo a una matriz de bytes.
Posibilidad de extraer sub-BitArrays de ella. Por ejemplo, desde una matriz como 111101, puede extraer los bits 1 a 4, produciendo un nuevo BitArray de 1110.
Operadores de cambio de bit.
Maneja longitudes de bits indefinidas (como BitArray), pero aún puede convertir a tipos limitados como int, al igual que puede lanzar un largo a un int si sabe que encajará.
? __ apuesto a que hay un montón de otros elementos en las listas de deseos de las personas.
¿Conoces alguna implementación de código abierto o comercial? Si es de código abierto, sería bueno tener una licencia no recíproca como Apache, MIT o Ms-Pl.
Tu pregunta es exactamente lo que estoy pensando. ¿Alguna actualización de este tema mientras tanto? – Martin