Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 BitArray의 모든 비트를 지정된 값으로 설정하는 방법

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

기존에 truefalse가 섞여 있던 상태에서 SetAll(false)를 호출한 후 모든 비트가 false로 초기화되었습니다.

정리

SetAll() 메서드는 다음과 같은 상황에서 활용하면 좋습니다.

  • BitArray 생성 직후 기본값을 명시적으로 초기화하고 싶을 때
  • 연산 처리 후 배열 전체를 재사용하기 위해 리셋할 때
  • 반복문 없이 성능 저하 없이 모든 비트를 일괄 변경하고 싶을 때

개별 비트 하나만 변경하려면 인덱서(arr[i])나 Set(int index, bool value) 메서드를 사용하고, 전체를 한 번에 변경할 때는 SetAll()을 사용하는 것이 효율적입니다.