Читаем C# 4.0: полное руководство полностью

Свойство Length позволяет установить или получить количество битов в коллекции. Следовательно, оно возвращает такое же значение, как и стандартное свойство Count, определяемое для всех коллекций. В отличие от свойства Count, свойство Length доступно не только для чтения, но и для записи, а значит, с его помощью можно изменить размер коллекции типа BitArray. Так, при сокращении коллекции типа BitArray лишние биты усекаются, начиная со старшего разряда. А при расширении коллекции типа BitArray дополнительные биты, имеющие логическое значение false, вводятся в коллекцию, начиная с того же старшего разряда.

Кроме того, в классе BitArray определяется следующий индексатор.


public bool this[int index] { get; set; }


С помощью этого индексатора можно получать или устанавливать значение элемента. В приведенном ниже примере демонстрируется применение класса 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("Исходное содержимое коллекции bа:", ba);


    ba = ba.Not();


    ShowBits("Содержимое коллекции bа после логической операции NOT:", ba);


    ShowBits("Содержимое коллекции bа2:", ba2);


    BitArray baЗ = ba.Xor(ba2);


    ShowBits("Результат логической операции ba XOR bа2:", baЗ);

  }

}


Эта программа дает следующий результат.


Исходное содержимое коллекции bа:

False  False  False  False  False  False  False  False


Содержимое коллекции bа после логической операции NOT:

True   True   True   True   True   True   True   True


Содержимое коллекции bа2:

True   True   False  False  False  False  True   False


Результат логической операции ba XOR bа2:

False  False  True   True   True   True   False  True


Специальные коллекции

В среде .NET Framework предусмотрен ряд специальных коллекций, оптимизированных для работы с данными конкретного типа или для их обработки особым образом. Классы этих необобщенных коллекций определены в пространстве имен System.Collections.Specialized и перечислены ниже.


Класс специальной коллекции - Описание


CollectionsUtil - Содержит фабричные методы для создания коллекций

HybridDictionary - Предназначен для коллекций, в которых для хранения небольшого количества пар “ключ-значение” используется класс ListDictionary. При превышении коллекцией определенного размера автоматически используется класс Hashtable для хранения ее элементов

ListDictionary - Предназначен для коллекций, в которых для хранения пар “ключ-значение" используется связный список. Такие коллекции рекомендуются только для хранения небольшого количества элементов

NameValueCollection - Предназначен для отсортированных коллекций, в которых хранятся пары “ключ-значение”, причем и ключ, и значение относятся к типу string

OrderedDictionary - Предназначен для коллекций, в которых хранятся индексируемые пары “ключ-значение”

StringCollection - Предназначен для коллекций, оптимизированных для хранения символьных строк

StringDictionary - Предназначен для хеш-таблиц, в которых хранятся пары “ключ-значение”, причем и ключ, и значение относятся к типу string


Кроме того, в пространстве имен System.Collections определены три базовых абстрактных класса: CollectionBase, ReadOnlyCollectionBase и DictionaryBase. Эти классы могут наследоваться и служить в качестве отправной точки для разработки собственных специальных коллекций.


Обобщенные коллекции

Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных