C#에서 BitArray의 모든 비트를 지정된 값으로 한 번에 설정하려면 SetAll() 메서드를 사용합니다. 이 메서드는 반복문 없이도 BitArray 내부의 모든 비트를 true 또는 false로 일괄 변경할 수 있어, 배열 전체를 초기화하거나 특정 값으로 통일해야 할 때 매우 유용합니다.
SetAll() 메서드란?
SetAll(bool value)는 BitArray 클래스에서 제공하는 메서드로, 매개변수로 전달된 불리언 값(true 또는 false)을 배열의 모든 요소에 적용합니다. 반환값은 없으며, 호출 즉시 원본 BitArray가 변경됩니다.
예제 1: 모든 비트를 true로 설정하기
다음은 BitArray의 모든 비트를 true로 설정하는 코드입니다.
using System;
using System.Collections;
public class Demo {
public static void Main() {
BitArray arr = new BitArray(5);
arr[0] = false;
arr[1] = false;
arr[2] = false;
arr[3] = false;
Console.WriteLine("BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
arr.SetAll(true);
Console.WriteLine("\nUpdated BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.
BitArray... False False False False False Updated BitArray... True True True True True
처음에는 5개의 비트가 모두 false였지만, SetAll(true) 호출 후 모든 비트가 true로 변경된 것을 확인할 수 있습니다.
예제 2: 모든 비트를 false로 설정하기
이번에는 혼합된 값으로 초기화된 BitArray의 모든 비트를 false로 설정하는 예제입니다.
using System;
using System.Collections;
public class Demo {
public static void Main() {
BitArray arr = new BitArray(5);
arr[0] = true;
arr[1] = false;
arr[2] = true;
arr[3] = false;
Console.WriteLine("BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
arr.SetAll(false);
Console.WriteLine("\nUpdated BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.
BitArray... True False True False False Updated BitArray... False False False False False
기존에 true와 false가 섞여 있던 상태에서 SetAll(false)를 호출한 후 모든 비트가 false로 초기화되었습니다.
정리
SetAll() 메서드는 다음과 같은 상황에서 활용하면 좋습니다.
- BitArray 생성 직후 기본값을 명시적으로 초기화하고 싶을 때
- 연산 처리 후 배열 전체를 재사용하기 위해 리셋할 때
- 반복문 없이 성능 저하 없이 모든 비트를 일괄 변경하고 싶을 때
개별 비트 하나만 변경하려면 인덱서(arr[i])나 Set(int index, bool value) 메서드를 사용하고, 전체를 한 번에 변경할 때는 SetAll()을 사용하는 것이 효율적입니다.