Array Dimensions in Visual BasicArray Dimensions in Visual Basic

차원은 배열의 요소에 대 한 사양을 변경할 수 있는 방향입니다.A dimension is a direction in which you can vary the specification of an array's elements. 해당 월의 각 날짜에 대 한 판매량 합계를 포함 하는 배열에는 1 차원 (해당 월의 일)이 있습니다.An array that holds the sales total for each day of the month has one dimension (the day of the month). 해당 월의 각 날짜에 대 한 총 판매량을 포함 하는 배열에는 두 개의 차원 (부서 번호와 해당 월의 일)이 있습니다.An array that holds the sales total by department for each day of the month has two dimensions (the department number and the day of the month). 배열에 포함 된 차원의 수를 차수라고 합니다.The number of dimensions an array has is called its rank.

참고

Rank 속성을 사용 하 여 배열에 포함 된 차원의 수를 결정할 수 있습니다.You can use the Rank property to determine the how many dimensions an array has.

차원 작업Working with Dimensions

배열의 각 차원에 대 한 인덱스 또는 첨자 를 제공 하 여 배열의 요소를 지정 합니다.You specify an element of an array by supplying an index or subscript for each of its dimensions. 요소는 인덱스 0부터 해당 차원의 가장 높은 인덱스까지 각 차원에 따라 인접 합니다.The elements are contiguous along each dimension from index 0 through the highest index for that dimension.

다음 그림에서는 차수가 다른 배열의 개념적 구조를 보여 줍니다.The following illustrations show the conceptual structure of arrays with different ranks. 그림의 각 요소는 해당 요소에 액세스 하는 인덱스 값을 보여 줍니다.Each element in the illustrations shows the index values that access it. 예를 들어 (1, 0)인덱스를 지정 하 여 2 차원 배열의 두 번째 행에 있는 첫 번째 요소에 액세스할 수 있습니다.For example, you can access the first element of the second row of the two-dimensional array by specifying indexes (1, 0).

1 차원 배열을 표시 하는 다이어그램입니다.

2 차원 배열을 표시 하는 다이어그램입니다.

3 차원 배열을 표시 하는 다이어그램입니다.

한 차원One Dimension

많은 배열에는 각 연령의 사용자 수와 같이 하나의 차원만 있습니다.Many arrays have only one dimension, such as the number of people of each age. 요소를 지정 하는 유일한 요구 사항은 해당 요소에 개수를 포함 하는 기간입니다.The only requirement to specify an element is the age for which that element holds the count. 따라서 이러한 배열은 하나의 인덱스만 사용 합니다.Therefore, such an array uses only one index. 다음 예에서는 0 ~ 120에 대 한 연령 수의 1 차원 배열을 보유 하는 변수를 선언 합니다.The following example declares a variable to hold a one-dimensional array of age counts for ages 0 through 120.

Dim ageCounts(120) As UInteger

두 차원Two Dimensions

일부 배열에는 캠퍼스의 각 건물 바닥에 있는 사무실 수와 같이 두 개의 차원이 있습니다.Some arrays have two dimensions, such as the number of offices on each floor of each building on a campus. 요소의 사양에는 건물 번호와 층이 모두 필요 하며 각 요소는 빌딩 및 층의 조합 수를 포함 합니다.The specification of an element requires both the building number and the floor, and each element holds the count for that combination of building and floor. 따라서 이러한 배열에서는 두 개의 인덱스를 사용 합니다.Therefore, such an array uses two indexes. 다음 예제에서는 0부터 40 까지의 빌딩 및 0에서 5 까지의 2 차원 배열을 포함 하는 변수를 선언 합니다.The following example declares a variable to hold a two-dimensional array of office counts, for buildings 0 through 40 and floors 0 through 5.

Dim officeCounts(40, 5) As Byte

2 차원 배열을 사각형 배열이 라고도 합니다.A two-dimensional array is also called a rectangular array.

3 차원Three Dimensions

일부 배열에 3 차원 공간의 값과 같은 세 개의 차원이 있습니다.A few arrays have three dimensions, such as values in three-dimensional space. 이러한 배열은 세 개의 인덱스를 사용 합니다 .이 경우에는 실제 공간의 x, y 및 z 좌표를 나타냅니다.Such an array uses three indexes, which in this case represent the x, y, and z coordinates of physical space. 다음 예제에서는 3 차원 볼륨의 다양 한 지점에서 3 차원 양의 기온 배열을 보유 하는 변수를 선언 합니다.The following example declares a variable to hold a three-dimensional array of air temperatures at various points in a three-dimensional volume.

Dim airTemperatures(99, 99, 24) As Single

3 개 이상의 차원More than Three Dimensions

배열에는 최대 32 차원이 포함 될 수 있지만,이 경우에는 세 개 이상의 차원이 있을 수 있습니다.Although an array can have as many as 32 dimensions, it is rare to have more than three.

참고

배열에 차원을 추가 하면 배열에 필요한 총 저장소가 크게 향상 되므로 다차원 배열을 주의 해 서 사용 합니다.When you add dimensions to an array, the total storage needed by the array increases considerably, so use multidimensional arrays with care.

다른 차원 사용Using Different Dimensions

현재 월의 매일 판매 금액을 추적 하려는 경우를 가정해 보겠습니다.Suppose you want to track sales amounts for every day of the present month. 다음 예제와 같이 월의 각 날짜에 하나씩 31 개의 요소가 포함 된 1 차원 배열을 선언할 수 있습니다.You might declare a one-dimensional array with 31 elements, one for each day of the month, as the following example shows.

Dim salesAmounts(30) As Double

이제 월의 모든 날 뿐만 아니라 월 마다 동일한 정보를 추적 하려고 한다고 가정 합니다.Now suppose you want to track the same information not only for every day of a month but also for every month of the year. 다음 예제와 같이 12 개 행 (월)과 31 개 열 (일)을 사용 하 여 2 차원 배열을 선언할 수 있습니다.You might declare a two-dimensional array with 12 rows (for the months) and 31 columns (for the days), as the following example shows.

Dim salesAmounts(11, 30) As Double

이제 배열에 1 년 이상 정보를 저장 하도록 결정 한다고 가정 합니다.Now suppose you decide to have your array hold information for more than one year. 5 년 동안의 판매량을 추적 하려는 경우 다음 예제와 같이 5 개 계층, 12 개 행 및 31 열이 포함 된 3 차원 배열을 선언할 수 있습니다.If you want to track sales amounts for 5 years, you could declare a three-dimensional array with 5 layers, 12 rows, and 31 columns, as the following example shows.

Dim salesAmounts(4, 11, 30) As Double

각 인덱스는 0부터 최대값까지 다르므로 salesAmounts의 각 차원은 해당 차원의 필수 길이 보다 하나로 선언 됩니다.Note that, because each index varies from 0 to its maximum, each dimension of salesAmounts is declared as one less than the required length for that dimension. 또한 배열의 크기가 새 차원 마다 늘어납니다.Note also that the size of the array increases with each new dimension. 위의 예제에서 세 가지 크기는 각각 31, 372 및 1860 요소입니다.The three sizes in the preceding examples are 31, 372, and 1,860 elements respectively.

참고

Dim 문 또는 New 절을 사용 하지 않고 배열을 만들 수 있습니다.You can create an array without using the Dim statement or the New clause. 예를 들어 CreateInstance 메서드를 호출 하거나 다른 구성 요소에서 이러한 방식으로 만든 배열에 코드를 전달할 수 있습니다.For example, you can call the CreateInstance method, or another component can pass your code an array created in this manner. 이러한 배열의 하한값은 0이 될 수 없습니다.Such an array can have a lower bound other than 0. 항상 GetLowerBound 메서드나 LBound 함수를 사용 하 여 차원의 하 한을 테스트할 수 있습니다.You can always test for the lower bound of a dimension by using the GetLowerBound method or the LBound function.

참고 항목See also