Чтение онлайн

ЖАНРЫ

C# 4.0 полное руководство - 2011

Шилдт Герберт

Шрифт:

Таблица 25.9. Методы, определенные в классе BitArray

Метод

Описание

public

value)

BitArray And(BitArray

Выполняет операцию логического умножения И битов вызывающего объекта и коллекции value. Возвращает коллекцию типа BitArray, содержащую результат

public

bool Get(int index)

Возвращает

значение бита, указываемого по индексу index

public

BitArray Not

Выполняет операцию поразрядного логического отрицания НЕ битов вызывающей коллекции и возвращает коллекцию типа BitArray, содержащую результат

Метод

Описание

public BitArray Or(BitArray value)

public void Set (int index, bool value)

public void SetAll(bool value)

public BitArray Xor(BitArray value)

Выполняет операцию логического сложения ИЛИ битов вызывающего объекта и коллекции value. Возвращает коллекцию типа BitArray, содержащую результат

Устанавливает бит, указываемый по индексу index, равным значению value

Устанавливает все биты равными значению value

Выполняет логическую операцию исключающее ИЛИ над битами вызывающего объекта и коллекции value. Возвращает коллекцию типа BitArray, со-

В классе BitArray определяется также собственное свойство, помимо тех, что указаны в интерфейсах, которые в нем реализуются.

public int Length { get; set; }

Свойство 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("Исходное содержимое коллекции Ьа:", Ьа) ; 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

Поделиться с друзьями: