Битовые коллекции
Битовые коллекции — это коллекции, элементы которых являются битовыми флагами. Поскольку каждый элемент является битом, а не объектом, то поведение этих коллекций слегка отличается от других.
Класс BitArray является классом коллекции, в котором емкость всегда совпадает с количеством элементов. Элементы добавляются в BitArray путем увеличения значения свойства Length. Удаление элементов осуществляется путем уменьшения значения свойства Length. Класс BitArray предоставляет методы, недоступные в других коллекциях, включая методы, которые позволяют изменять множество элементов сразу с использованием фильтра, такого как And, Or, Xor, Not и SetAll.
Класс BitVector32 представляет собой структуру, предоставляющую ту же функциональность, что и BitArray, но с лучшей производительностью. Тип BitVector32 является более быстрым, поскольку это тип значения и, следовательно, размещается в стеке, в то время как BitArray является ссылочным типом и размещается в куче.
В BitVector32 может храниться ровно 32 бита, в то время как в BitArray может храниться переменное число битов. В BitVector32 хранятся и битовые флаги, и двухбайтовые целые числа, что делает его идеальным средством для работы с данными, которые не предоставляются пользователю. Однако если число требуемых битовых флагов является неизвестным, изменяется или превосходит 32, следует использовать BitArray.
BitArray находится в пространстве имен System.Collections. BitVector32 находится в пространстве имен System.Collections.Specialized.
См. также
Ссылки
System.Collections.Specialized