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

ดึงหรือตั้งค่าจำนวนองค์ประกอบใน BitArray ใน C#

ภาพรวม

BitArray.Length เป็นคุณสมบัติที่อ่าน/เขียนได้ (read-write) ใช้ดูหรือเปลี่ยนจำนวนบิตในอาร์เรย์ การตั้งค่า Length ใหม่จะขยายหรือตัดทอนบิต (บิตใหม่จะเป็น 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("Elements in BitArray1...");
        foreach (bool res in arr1)
        {
            Console.WriteLine(res);
        }
        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
Elements in BitArray1...
False
True
BitArray2 length = 2
Elements in BitArray2...
False
True
Is BitArray1 equal to BitArray2? = False

ตัวอย่างที่ 2: BitArray ขนาดต่างกัน

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        BitArray arr1 = new BitArray(2);
        BitArray arr2 = new BitArray(1);
        arr1[0] = false;
        arr1[1] = true;
        Console.WriteLine("BitArray1 length = " + arr1.Length);
        Console.WriteLine("Elements in BitArray1...");
        foreach (bool res in arr1)
        {
            Console.WriteLine(res);
        }
        Console.WriteLine("\nBitArray2 length = " + arr2.Length);
        Console.WriteLine("Elements in BitArray2...");
        foreach (bool res in arr2)
        {
            Console.WriteLine(res);
        }
    }
}

ผลลัพธ์

BitArray1 length = 2
Elements in BitArray1...
False
True
BitArray2 length = 1
Elements in BitArray2...
False

คำอธิบายเพิ่มเติม

  • การตั้งค่า Length ใหม่: หากเพิ่มขึ้น บิตใหม่จะเป็น false หากลดลง บิตเกินจะถูกตัดทิ้ง
  • Length ต้องเป็นค่าบวกหรือศูนย์ ตั้งค่าติดลบจะโยน ArgumentOutOfRangeException
  • Equals() เปรียบเทียบอ้างอิง ไม่ใช่ค่า ใช้ Cast<bool>().SequenceEqual() สำหรับเปรียบเทียบเนื้อหา
  • BitArray ไม่มี Capacity แยกต่างหาก Length ก็คือขนาดจริง