ภาพรวม
BitArray ใน C# รองรับการวนลูปผ่าน IEnumerable โดยใช้ foreach หรือ Enumerator โดยตรง ซึ่งช่วยให้เข้าถึงค่า bit แต่ละตัวได้อย่างง่ายดาย
ตัวอย่างที่ 1: วนลูปผ่าน BitArray สองตัวและเปรียบเทียบ
using System;
using System.Collections;
public class Demo
{
public static void Main()
{
BitArray arr1 = new BitArray(5);
BitArray arr2 = new BitArray(5);
arr1[0] = false;
arr1[1] = true;
arr1[2] = false;
arr1[3] = true;
arr1[4] = true;
Console.WriteLine("Enumerator that iterates through BitArray1");
IEnumerable demoEnum = arr1;
foreach (Object ob in demoEnum)
{
Console.WriteLine(ob);
}
arr2[0] = true;
arr2[1] = true;
arr2[2] = true;
arr2[3] = false;
arr2[4] = true;
Console.WriteLine("Enumerator that iterates through BitArray2");
demoEnum = arr2;
foreach (Object ob in demoEnum)
{
Console.WriteLine(ob);
}
Console.WriteLine("Is BitArray1 equal to BitArray2? = " + arr1.Equals(arr2));
}
}
ผลลัพธ์
Enumerator that iterates through BitArray1 False True False True True Enumerator that iterates through BitArray2 True True True False True Is BitArray1 equal to BitArray2? = False
ตัวอย่างที่ 2: วนลูปผ่าน BitArray เดียว
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;
arr[4] = true;
Console.WriteLine("Enumerator that iterates through BitArray");
IEnumerable demoEnum = arr;
foreach (Object ob in demoEnum)
{
Console.WriteLine(ob);
}
}
}
ผลลัพธ์
Enumerator that iterates through BitArray False True False True True
สรุป
- BitArray สามารถแปลงเป็น
IEnumerableได้โดยตรง - ใช้
foreachวนลูปอ่านค่า bit แต่ละตัว - เมธอด
Equals()เปรียบเทียบค่า bit ทั้งหมด ไใช่ reference