C# 다차원 배열이란?
다차원 배열 중 가장 단순하고 기본적인 형태는 2차원 배열입니다. 2차원 배열은 쉽게 말해 여러 개의 1차원 배열을 하나로 묶은 목록이라고 할 수 있으며, 행과 열로 구성된 표 형태의 데이터를 다룰 때 매우 유용합니다.
다차원 배열 초기화 방법
C#에서 다차원 배열은 각 행의 초기값을 중괄호({ })로 묶어 지정하는 방식으로 선언과 동시에 초기화할 수 있습니다. 아래 코드는 3행 4열 크기의 int형 2차원 배열을 초기화하는 예시입니다.
int[] a = new int[3,4] {
{0, 1, 2, 3}, /* 0번째 행의 초기값 */
{4, 5, 6, 7}, /* 1번째 행의 초기값 */
{8, 9, 10, 11} /* 2번째 행의 초기값 */
};참고로, 배열의 크기를 생략하고 축약형으로 작성하는 것도 가능합니다. 컴파일러가 초기값의 개수를 바탕으로 배열 크기를 자동으로 추론합니다.
int[] b = { {0, 1}, {2, 3} };예제: 2차원 배열 선언 및 순회하기
다음 예제는 C#에서 2차원 배열을 선언·초기화한 뒤, 중첩 for문을 사용하여 배열의 모든 요소 값을 출력하는 전체 과정을 보여줍니다.
코드
using System;
namespace ArrayApplication {
class MyArray {
static void Main(string[] args) {
/* 3행 2열 크기의 배열 */
int[] a = new int[3, 2] {{0,0}, {1,2}, {2,4}};
int i, j;
/* 각 배열 요소의 값을 출력 */
for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) {
Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
}
}
Console.ReadKey();
}
}
}실행 결과
a[0,0] = 0 a[0,1] = 0 a[1,0] = 1 a[1,1] = 2 a[2,0] = 2 a[2,1] = 4
출력 결과를 보면 첫 번째 인덱스는 행(row), 두 번째 인덱스는 열(column)을 나타내며, a[i,j]처럼 쉼표로 인덱스를 구분하는 문법을 사용합니다. 한 가지 주의할 점은 C#의 2차원 배열은 직사각형(rectangular) 형태라는 것입니다. 행마다 길이가 다른 배열이 필요하다면 '가변 배열(jagged array)'인 int[][] 형태를 사용해야 하며, 이는 자바나 C++의 다차원 배열과 문법적으로 다른 부분이므로 헷갈리지 않도록 주의하세요.