Array Dimensions in Visual Basic

차원은 배열 요소의 사양을 변경할 수 있는 방향입니다. 월별 판매 합계가 포함된 배열에는 하나의 차원(날짜)이 있습니다. 월별 부서별 매출 합계가 포함된 배열에는 두 개의 차원(부서 번호와 날짜)이 있습니다. 배열의 차원 수를 해당 순위라고 합니다.

참고 항목

Rank 속성을 사용하여 배열에 있는 차원 수를 확인할 수 있습니다.

차원 작업

각 차원에 대해 인덱스 또는 아래 첨자를 제공하여 배열의 요소를 지정합니다. 요소는 인덱스 0부터 해당 차원에 대한 가장 높은 인덱스까지 각 차원을 따라 연속되어 있습니다.

다음 그림에서는 순위가 다른 배열의 개념 구조를 보여 줍니다. 그림의 각 요소는 액세스하는 인덱스 값을 보여 줍니다. 예를 들어 (1, 0) 인덱스를 지정하여 2차원 배열의 두 번째 행의 첫 번째 요소에 액세스할 수 있습니다.

Diagram that shows a one-dimensional array.

Diagram that shows a two-dimensional array.

Diagram that shows a three-dimensional array.

1차원

많은 배열에는 각 연령의 인원 수와 같이 하나의 차원만 있습니다. 요소를 지정하기 위한 유일한 요구 사항은 해당 요소가 개수를 보유하는 연령입니다. 따라서 이러한 배열은 하나의 인덱스만 사용합니다. 다음 예제에서는 0세부터 120세까지의 연령 수를 1차원 배열로 저장하는 변수를 선언합니다.

Dim ageCounts(120) As UInteger

2차원

캠퍼스 내 각 건물의 각 층에 있는 사무실 수와 같이 일부 배열은 두 가지 차원을 갖습니다. 요소의 사양에는 건물 번호와 층이 모두 필요하며 각 요소는 해당 건물과 층의 조합에 대한 개수를 보유합니다. 따라서 이러한 배열은 두 개의 인덱스를 사용합니다. 다음 예제에서는 건물 0부터 40까지 그리고 0부터 5층까지 사무실 수의 2차원 배열을 보유하는 변수를 선언합니다.

Dim officeCounts(40, 5) As Byte

2차원 배열을 사각형 배열이라고도 합니다.

3차원

일부 배열은 3차원 공간의 값과 같이 세 차원을 갖습니다. 이러한 배열은 세 개의 인덱스를 사용하며, 이 경우 물리적 공간의 x, y, z 좌표를 나타냅니다. 다음 예제는 3차원 볼륨의 다양한 지점에서 공기 온도의 3차원 배열을 보유하는 변수를 선언하는 예제입니다.

Dim airTemperatures(99, 99, 24) As Single

3차원 초과

배열에는 32개의 차원까지 만들 수 있지만 3개보다 많은 차원이 있는 경우는 드뭅니다.

참고 항목

배열에 차원을 추가하면 배열에 필요한 총 저장 공간이 상당히 증가하므로 다차원 배열은 신중하게 사용하세요.

다른 차원 사용

이번 달의 매일 판매 금액을 추적하고 싶다고 가정해 보겠습니다. 다음 예제와 같이 매월 각 날짜에 대해 하나씩 31개의 요소가 있는 1차원 배열을 선언할 수 있습니다.

Dim salesAmounts(30) As Double

이제 한 달 중 매일뿐만 아니라 일 년의 모든 달에 대해 동일한 정보를 추적하고 싶다고 가정해 보겠습니다. 다음 예제와 같이 12개 행(월)과 31개 열(일)을 사용하여 2차원 배열을 선언할 수 있습니다.

Dim salesAmounts(11, 30) As Double

이제 배열이 1년 넘게 정보를 보유하도록 결정한다고 가정합니다. 5년 동안 판매액을 추적하려는 경우 다음 예제와 같이 5개의 레이어, 12개 행 및 31개의 열이 있는 3차원 배열을 선언할 수 있습니다.

Dim salesAmounts(4, 11, 30) As Double

각 인덱스는 0에서 최대값까지 다양하기 때문에 salesAmounts의 각 차원은 해당 차원에 필요한 길이보다 하나 적은 값으로 선언됩니다. 또한 배열의 크기는 새 차원마다 증가합니다. 앞의 예에서 세 가지 크기는 각각 31개, 372개, 1,860개 요소입니다.

참고 항목

Dim 문이나 New 절을 사용하지 않고 배열을 만들 수 있습니다. 예를 들어 CreateInstance 메서드를 호출하거나 다른 구성 요소가 이러한 방식으로 만든 배열을 코드에 전달할 수 있습니다. 이러한 배열은 0 이외의 하한을 가질 수 있습니다. 항상 GetLowerBound 메서드 또는 LBound 함수를 사용하여 차원의 하한을 테스트할 수 있습니다.

참고 항목