Битовые коллекции
Обновлен: Ноябрь 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.
См. также
Ссылки
System.Collections.Specialized