방법: 배열 크기 변경
업데이트: 2007년 11월
배열 변수에 새 배열 개체를 할당하여 배열 변수의 크기를 조정할 수 있습니다. 표준 대입문이나 ReDim 문(Visual Basic)을 사용할 수 있습니다. 어느 방법을 사용하든 원래 배열은 완전히 새로운 배열로 바뀌고 배열 변수는 새 배열을 가리키게 됩니다.
배열의 크기를 조정하면 메모리를 효율적으로 관리할 수 있습니다. 예를 들어, 처음에는 작은 배열을 만들고 나중에 추가 요소가 필요할 때 배열 크기를 늘릴 수 있습니다. 또는 처음부터 큰 배열을 만들고 일부 요소가 더 이상 필요하지 않을 때 배열 크기를 줄일 수 있습니다. 이렇게 하면 필요한 경우에만 추가 메모리를 사용할 수 있습니다.
표준 대입문을 사용하여 배열 변수의 크기를 조정하려면
차원 길이를 새로 지정하여 새 배열 개체를 만듭니다.
배열 변수에 새 배열 개체를 할당합니다.
Dim thisArrayVariable() As Integer = New Integer(99) {} thisArrayVariable = New Integer(49) {}
ReDim 문을 사용하여 배열 변수의 크기를 조정하려면
ReDim 문에서 배열 변수의 차원 길이를 새로 지정합니다.
Dim thisArrayVariable() As Integer = New Integer(99) {} ReDim thisArrayVariable(9)
일반적으로 ReDim 문을 사용하여 배열을 선언하면 배열 요소의 기존 값은 잃게 됩니다. 그러나 ReDim 문에 Preserve 키워드를 포함시키면 이 값들을 보존할 수 있습니다.
기존 요소 값을 유지하면서 배열 변수의 크기를 조정하려면
ReDim 문에서 배열 변수의 차원 길이를 새로 지정합니다.
ReDim 문에 Preserve 키워드를 추가합니다. 다음 예제에서는 새 배열을 만들고, arrayToIncrease에 있는 기존 배열의 해당 요소로 새 배열 요소를 초기화하고, 새 배열을 배열 변수 arrayToIncrease에 할당합니다.
Dim arrayToIncrease(9, 49) ReDim Preserve arrayToIncrease(9, 199)
다차원 배열에서 Preserve를 사용하면 마지막 차원 길이만 변경할 수 있습니다. 다른 차원의 길이를 변경하려고 하면 ArrayTypeMismatchException 예외가 발생합니다.
Preserve 키워드를 사용하여 큰 배열의 크기를 조정할 경우에는 Visual Basic에서 기존의 모든 요소를 새 배열로 복사해야 되므로 성능이 느려질 수 있습니다.