Подобным образом можно создать Bit Array-коллекцию из массива других типов.
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");
}
Public static void Main()
{
BitArray ba = new BitArray(8); // все биты = false
byte[] b = { 67 };
BitArray ba2 = new BitArray(b);
Console.Write("Бит 5 = {0, -6} ", ba2[5]);
showBits("Исходное содержимое бит.коллекции ba:", ba);
ba = ba.Not();
showBits ("Содержимое коллек. ba после вызова Not():", ba);
showBits("Содержимое коллекции ba2:", ba2);
BitArray ba3 = ba.Xor(ba2);
showBits("Результат операции ba XOR ba2:", ba3);
}
}
Специализированные коллекции
В среде .NET Framework предусмотрена возможность создания специализированных коллекций, которые оптимизированы для работы с конкретными типами данных или для особого вида обработки.
Эти классы коллекций (они определены в пространстве имен System.Collections.Specialized):
Специализированная коллекция | Описание |
CollectionsUtil | Коллекция, в которой игнорируется различия между строчным и прописным написанием символов в строках |
HybridDictionary | Коллекция, в которой для хранения небольшого числа пар ключ/значение используется класс ListDictionary. Но при превышении коллекцией определеного размера для хранения: элементов автоматически используется класс Hashtable |
ListDictionary | Коллекция, в которой для хранения пар ключ/значение используется связный список. Такую коллекцию рекомендуется использовать лишь при небольшом количестве элементов |
NameValueCollection | Отсортированная коллекция пар ключ/значение, в которой как ключ, так и значение имеют тип string |
StringCollection | Коллекция, оптимизированная для хранения строк |
StringDictionary | Хеш-таблица, предназначенная для хранения пар ключ/значение, в которой как ключ, так и значение имеют тип string |
В пространстве имен System.Collections также определены три абстрактных базовых класса, CollectionBase, ReadOnlyCollectionBase и DictionaryBase, которые предполагают создание производных классов и предназначены для использования в качестве отправной точки при разработке программистом собственных специализированных классов.
Дата добавления: 2019-02-08; просмотров: 560;