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

C#에서 3차원 배열의 상한과 하한 인덱스 구하는 방법

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

이 메서드들은 매개변수로 차원(dimension)을 전달받습니다. 즉, 어떤 차원의 경계 값을 알고 싶은지 지정해 주어야 합니다.

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

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

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

차원별 상한·하한 조회 방법

0번째 차원 (첫 번째 차원)

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

1번째 차원 (두 번째 차원)

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

2번째 차원 (세 번째 차원)

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

전체 예제 코드

아래는 3차원 배열의 모든 차원에 대해 상한과 하한을 출력하는 완전한 예제입니다.

using System;
class Program {
    static void Main() {
        int[,] arr = new int[2,3,4];
        
        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: 1
Dimension 0 Lower Bound: 0
Dimension 1 Upper Bound: 2
Dimension 1 Lower Bound: 0
Dimension 2 Upper Bound: 3
Dimension 2 Lower Bound: 0

결과 해석

C#의 배열은 기본적으로 0부터 시작(zero-based)하기 때문에 모든 차원의 하한 값은 0입니다. 반면 상한 값은 해당 차원의 길이에서 1을 뺀 값이 됩니다.

  • 0번째 차원: 길이가 2이므로 하한 0, 상한 1
  • 1번째 차원: 길이가 3이므로 하한 0, 상한 2
  • 2번째 차원: 길이가 4이므로 하한 0, 상한 3

이처럼 GetUpperBound()와 GetLowerBound() 메서드를 활용하면 다차원 배열을 순회할 때 각 차원의 유효한 인덱스 범위를 동적으로 파악할 수 있어, 반복문 작성 시 유용하게 사용할 수 있습니다.