Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การใช้ Enumerator วนลูปผ่าน BitArray ใน C#

ภาพรวม

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