C#의 BitArray.Set() 메서드를 사용하면 비트 배열(BitArray) 내 특정 위치에 있는 비트를 원하는 값으로 간단하게 설정할 수 있습니다. 이 메서드는 두 개의 매개변수를 받는데, 첫 번째는 값을 변경할 인덱스(0부터 시작)이고, 두 번째는 해당 위치에 설정할 불리언(Boolean) 값입니다.
Set() 메서드 문법
public void Set(int index, bool value);
- index: 값을 설정할 비트의 위치
- value: 해당 위치에 지정할 값(true 또는 false)
인덱스가 배열 범위를 벗어나면 ArgumentOutOfRangeException이 발생하므로 주의해야 합니다.
예제 1
다음은 Set() 메서드로 인덱스 2의 비트를 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.Set(2, false);
Console.WriteLine("\n업데이트된 BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
BitArray... True False True False False 업데이트된 BitArray... True False False False False
실행 결과를 보면 arr.Set(2, false) 호출로 인해 인덱스 2의 값이 True에서 False로 변경된 것을 확인할 수 있습니다.
예제 2
이번에는 여러 개의 비트를 한 번에 설정하는 예제를 살펴보겠습니다.
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.Set(0, false);
arr.Set(1, true);
arr.Set(2, false);
Console.WriteLine("\n업데이트된 BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
BitArray... True False True False False 업데이트된 BitArray... False True False False False
이처럼 Set() 메서드를 활용하면 인덱서(arr[i])를 사용하는 것과 동일하게 특정 위치의 비트 값을 자유롭게 변경할 수 있습니다. 참고로 배열 전체를 하나의 값으로 일괄 설정하고 싶다면 SetAll() 메서드를 사용하는 것도 좋은 방법입니다.