Giới thiệu
BitArray cho phép truy cập bit qua indexer [int index] (get/set) hoặc phương thức Get(int index)/Set(int index, bool value). Index 0-based.
Ví dụ 1: Get/Set và so sánh
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("Độ dài BitArray1 = " + arr1.Length);
Console.WriteLine("BitArray1 phần tử đầu = " + arr1.Get(0));
arr2[0] = false;
arr2[1] = true;
Console.WriteLine("\nĐộ dài BitArray2 = " + arr2.Length);
Console.WriteLine("Các phần tử BitArray2...");
foreach (bool res in arr2)
{
Console.WriteLine(res);
}
Console.WriteLine("\nBitArray1 bằng BitArray2? = " + arr2.Equals(arr1));
}
}
Kết quả
Độ dài BitArray1 = 2
BitArray1 phần tử đầu = False
Độ dài BitArray2 = 2
Các phần tử BitArray2...
False
True
BitArray1 bằng BitArray2? = False
Ví dụ 2: Cập nhật bit tại index 0
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("Độ dài BitArray1 = " + arr1.Length);
Console.WriteLine("BitArray1 phần tử đầu = " + arr1.Get(0));
arr1[0] = true; // cập nhật
Console.WriteLine("BitArray1 phần tử đầu [CẬP NHẬT] = " + arr1.Get(0));
arr2[0] = false;
arr2[1] = true;
Console.WriteLine("\nĐộ dài BitArray2 = " + arr2.Length);
Console.WriteLine("Các phần tử BitArray2...");
foreach (bool res in arr2)
{
Console.WriteLine(res);
}
Console.WriteLine("\nBitArray1 bằng BitArray2? = " + arr2.Equals(arr1));
}
}
Kết quả
Độ dài BitArray1 = 2
BitArray1 phần tử đầu = False
BitArray1 phần tử đầu [CẬP NHẬT] = True
Độ dài BitArray2 = 2
Các phần tử BitArray2...
False
True
BitArray1 bằng BitArray2? = False
So sánh Equals
EqualstrênBitArrayso sánh tham chiếu (reference equality), không so sánh nội dung bit.- Để so sánh nội dung, duyệt từng bit hoặc dùng
Cast<bool>().SequenceEqual(...)(LINQ).