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

C# 3차원 배열의 범위(상한·하한) 구하기 – GetUpperBound와 GetLowerBound 활용법

C#에서 3차원 배열의 범위, 즉 각 차원의 상한(Upper Bound)하한(Lower Bound)을 확인하려면 GetUpperBound() 메서드와 GetLowerBound() 메서드를 사용하면 됩니다.

이 메서드는 매개변수로 차원(dimension) 인덱스를 받습니다. 다차원 배열에서 첫 번째 차원은 0, 두 번째 차원은 1, 세 번째 차원은 2로 표현됩니다.

기본 사용 방법

예를 들어 다음과 같은 3차원 배열이 있다고 가정해 보겠습니다.

int[,] arr = new int[3,4,5];

이 배열은 크기가 각각 3, 4, 5인 세 개의 차원으로 구성되어 있습니다.

차원 0 (첫 번째 차원)

arr.GetUpperBound(0)
arr.GetLowerBound(0)

차원 1 (두 번째 차원)

arr.GetUpperBound(1)
arr.GetLowerBound(1)

차원 2 (세 번째 차원)

arr.GetUpperBound(2)
arr.GetLowerBound(2)

전체 예제 코드

지금까지의 내용을 하나의 프로그램으로 정리하면 다음과 같습니다.

using System;
class Program {
   static void Main() {
      int[,] arr = new int[3,4,5];
      Console.WriteLine("Dimension 0 Upper Bound: {0}",arr.GetUpperBound(0).ToString());
      Console.WriteLine("Dimension 0 Lower Bound: {0}",arr.GetLowerBound(0).ToString());
      Console.WriteLine("Dimension 1 Upper Bound: {0}",arr.GetUpperBound(1).ToString());
      Console.WriteLine("Dimension 1 Lower Bound: {0}",arr.GetLowerBound(1).ToString());
      Console.WriteLine("Dimension 2 Upper Bound: {0}",arr.GetUpperBound(2).ToString());
      Console.WriteLine("Dimension 2 Lower Bound: {0}",arr.GetLowerBound(2).ToString());
   }
}

실행 결과

Dimension 0 Upper Bound: 2
Dimension 0 Lower Bound: 0
Dimension 1 Upper Bound: 3
Dimension 1 Lower Bound: 0
Dimension 2 Upper Bound: 4
Dimension 2 Lower Bound: 0

결과 해석

C# 배열은 기본적으로 0부터 인덱스가 시작하기 때문에 모든 차원의 하한 값은 0입니다. 반면 상한 값은 (배열 크기 - 1)이 됩니다.

  • 크기가 3인 차원 0 → 상한 2, 하한 0
  • 크기가 4인 차원 1 → 상한 3, 하한 0
  • 크기가 5인 차원 2 → 상한 4, 하한 0

즉, GetUpperBound(n)은 n번째 차원에서 유효한 마지막 인덱스를 반환하고, GetLowerBound(n)은 n번째 차원에서 유효한 첫 번째 인덱스를 반환합니다. 이 두 메서드를 활용하면 반복문 작성 시 배열의 범위를 벗어나는 오류(IndexOutOfRangeException)를 효과적으로 예방할 수 있습니다.