Поделиться через


Битовые коллекции

Обновлен: Ноябрь 2007

Битовые коллекции — это коллекции, элементы которых являются битовыми флагами. Поскольку каждый элемент является битом, а не объектом, то поведение этих коллекций слегка отличается от других.

Класс 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.

См. также

Ссылки

BitArray

BitVector32

System.Collections

System.Collections.Specialized

System.Collections.Generic

Другие ресурсы

Коллекции и структуры данных