СвойствоLengthпозволяет установить или получить количество битов в коллекции. Следовательно, оно возвращает такое же значение, как и стандартное свойствоCount,определяемое для всех коллекций. В отличие от свойстваCount,свойствоLengthдоступно не только для чтения, но и для записи, а значит, с его помощью можно изменить размер коллекции типаBitArray.Так, при сокращении коллекции типаBitArrayлишние биты усекаются, начиная со старшего разряда. А при расширении коллекции типаBitArrayдополнительные биты, имеющие логическое значениеfalse,вводятся в коллекцию, начиная с того же старшего разряда.
Кроме того, в классеBitArrayопределяется следующий индексатор.
public bool this[int
С помощью этого индексатора можно получать или устанавливать значение элемента. В приведенном ниже примере демонстрируется применение классаBitArray.
// Продемонстрировать применение класса BitArray.
using System;
using System.Collections;
class BADemo {
public static void ShowBits(string rem,
BitArray bits) {
Console.WriteLine(rem);
for(int i=0; i < bits.Count; i++)
Console.Write("{0, -6} ", bits[i]);
Console.WriteLine ("\n");
}
static void Main {
BitArray ba = new BitArray(8); byte[] b = { 67 };
BitArray ba2 = new BitArray(b);
ShowBits("Исходное содержимое коллекции Ьа:", Ьа) ; ba = Ьа.Not ;
ShowBits("Содержимое коллекции Ьа после логической операции NOT:", Ьа);
ShowBits("Содержимое коллекции Ьа2:", Ьа2);
BitArray ЬаЗ = Ьа.Хог(Ьа2);
ShowBits("Результат логической операции ba XOR Ьа2:", ЬаЗ);
}
}
Эта программа дает следующий результат.
Исходное содержимое коллекции Ьа:
False False False False False False False False Содержимое коллекции ba после логической операции NOT:
True True True True True True True True Содержимое коллекции ba2:
True True False False False False ?True False Результат логической операции ba XOR ba2:
False False True True True True False True
Специальные коллекции
В среде .NET Framework предусмотрен ряд специальных коллекций, оптимизированных для работы с данными конкретного типа или для их обработки особым образом. Классы этих необобщенных коллекций определены в пространстве имен System. Collections . Specialized и перечислены ниже.
Класс специальной коллекции
Описание
CollectionsUtil
Содержит фабричные методы для создания коллекций
HybridDictionary
Предназначен для коллекций, в которых для хранения небольшого количества пар “ключ-значение” используется класс ListDictionary. При превышении коллекцией определенного размера автоматически используется класс Hashtable для хранения ее элементов
ListDictionary
Предназначен для коллекций, в которых для хранения пар “ключ-значение" используется связный список. Такие коллекции рекомендуются только для хранения небольшого количества элементов
NameValueCollection