ภาพรวม
BitArray ใน namespace System.Collections จัดการอาร์เรย์บิตแบบกะทัดรัด เมธอด Get(int index) หรือดัชนี arr[index] ใช้ดึงค่าบูลีน (true/false) ที่ตำแหน่งที่ระบุ
ตัวอย่างที่ 1: ดึงค่าบิตและเปรียบเทียบ BitArray สองตัว
using System;
using System.Collections;
public class Demo
{
public static void Main()
{
BitArray arr1 = new BitArray(2);
BitArray arr2 = new BitArray(2);
arr1[0] = false;
arr1[1] = true;
Console.WriteLine("BitArray1 length = " + arr1.Length);
Console.WriteLine("BitArray1 first element = " + arr1.Get(0));
arr2[0] = false;
arr2[1] = true;
Console.WriteLine("\nBitArray2 length = " + arr2.Length);
Console.WriteLine("Elements in BitArray2...");
foreach (bool res in arr2)
{
Console.WriteLine(res);
}
Console.WriteLine("\nIs BitArray1 equal to BitArray2? = " + arr2.Equals(arr1));
}
}
ผลลัพธ์
BitArray1 length = 2
BitArray1 first element = False
BitArray2 length = 2
Elements in BitArray2...
False
True
Is BitArray1 equal to BitArray2? = False
ตัวอย่างที่ 2: ดึงค่าบิตหลายตำแหน่ง
using System;
using System.Collections;
public class Demo
{
public static void Main()
{
BitArray arr = new BitArray(5);
arr[0] = false;
arr[1] = true;
arr[2] = false;
arr[3] = true;
Console.WriteLine("BitArray length = " + arr.Length);
Console.WriteLine("BitArray first element = " + arr.Get(0));
Console.WriteLine("BitArray second element = " + arr.Get(1));
}
}
ผลลัพธ์
BitArray length = 5
BitArray first element = False
BitArray second element = True
คำอธิบายเพิ่มเติม
Get(index)และarr[index]ให้ผลลัพธ์เหมือนกัน แต่ Get() เป็นเมธอดแบบชัดเจน- ดัชนีเริ่มต้นที่ 0 ถึง Length-1
Equals()สำหรับ BitArray เปรียบเทียบอ้างอิง (reference) ไม่ใช่ค่า ใช้Cast<bool>().SequenceEqual()สำหรับเปรียบเทียบค่า- BitArray เหมาะสำหรับการจัดการแฟล็กจำนวนมาก ประหยัดหน่วยความจำ