ภาพรวม
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ต้องเป็นค่าบวกหรือศูนย์ ตั้งค่าติดลบจะโยน ArgumentOutOfRangeExceptionEquals()เปรียบเทียบอ้างอิง ไม่ใช่ค่า ใช้Cast<bool>().SequenceEqual()สำหรับเปรียบเทียบเนื้อหา- BitArray ไม่มี Capacity แยกต่างหาก Length ก็คือขนาดจริง