คลาส BitArray ในเนมสเปซ System.Collections ใช้จัดเก็บบิต (0 และ 1) เมื่อไม่ทราบจำนวนบิตล่วงหน้า คุณสมบัติ IsReadOnly ใช้ตรวจสอบว่า BitArray เป็นแบบอ่านอย่างเดียว (Read-only) หรือไม่ หากเป็น true จะไม่สามารถเพิ่ม ลบ หรือแก้ไของค์ประกอบได้
ตัวอย่างการใช้งาน
using System;
using System.Collections;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
BitArray ba1 = new BitArray(5);
BitArray ba2 = new BitArray(5);
byte[] a = { 90 };
byte[] b = { 30 };
ba1 = new BitArray(a);
ba2 = new BitArray(b);
Console.WriteLine("Bit array ba1: 60");
for (int i = 0; i < ba1.Count; i++)
{
Console.Write("{0, -4} ", ba1[i]);
}
Console.WriteLine();
Console.WriteLine("IsReadOnly = " + ba1.IsReadOnly);
Console.WriteLine("IsReadOnly = " + ba2.IsReadOnly);
Console.ReadKey();
}
}
}
ผลลัพธ์
Bit array ba1: 60 False True False True True False True False IsReadOnly = False IsReadOnly = False
คำอธิบาย
BitArrayสร้างจากอาร์เรย์ไบต์ (byte[]) ได้- คุณสมบัติ
IsReadOnlyส่งคืนfalseเสมอสำหรับ BitArray มาตรฐาน เพรองรองรับการแก้ไขค่าได้ (เช่นba1[0] = true) - ต่างจาก
ReadOnlyCollection<T>ที่เป็น Wrapper ทำให้คอลเลกชันอ่านอย่างเดียวได้จริง
การใช้งานจริง: BitArray เหมาะสำหรับจัดการ Flag, Bitmask, หรือชุดข้อมูล Boolean ขนาดใหญ่ เพื่อประหยัดหน่วยความจำ (1 บิตต่อค่า แทน 1 ไบต์ของ bool[])