다음을 통해 공유


배열 대신 컬렉션 사용

업데이트: 2007년 11월

컬렉션은 Object 데이터 형식을 다루는 데 주로 사용되지만 다른 모든 데이터 형식을 다루는 데에도 사용할 수 있습니다. 일부의 경우 배열보다 컬렉션에 항목을 저장하는 것이 더욱 효율적일 수 있습니다.

배열 크기를 변경하려면 ReDim 문(Visual Basic)을 사용해야 합니다. 이 작업을 수행할 때 Visual Basic에서는 새 배열을 만들고 이전 배열을 해제하여 삭제합니다. 이 작업에는 실행 시간이 필요합니다. 따라서 사용 중인 항목의 개수가 자주 변경되거나 필요한 항목의 최대 개수를 미리 알 수 없는 경우에 컬렉션을 사용하면 더 좋은 성능을 얻을 수 있습니다.

새 개체를 만들거나 기존 요소를 복사할 필요가 없는 컬렉션에서는 ReDim을 사용해야 하는 배열보다 더 짧은 실행 시간으로 크기 조정을 처리할 수 있습니다. 그러나 크기가 변경되지 않거나 아주 드물게만 변경되는 경우에는 배열이 더 효율적일 수 있습니다. 성능은 개별 응용 프로그램에 따라 크게 달라집니다. 배열과 컬렉션을 모두 시도해 보고 결정하는 것도 좋은 방법입니다.

특수 컬렉션

또한 .NET Framework에서는 일반 및 특수 컬렉션을 위한 다양한 클래스, 인터페이스 및 구조체를 제공합니다. System.CollectionsSystem.Collections.Specialized 네임스페이스에는 사전, 목록, 큐 및 스택을 포함하는 정의와 구현이 포함되어 있습니다. System.Collections.Generic 네임스페이스에서는 이러한 대부분의 항목을 하나 이상의 형식 인수를 받는 제네릭 버전으로 제공합니다.

컬렉션에 특정 데이터 형식의 요소만 포함될 경우 제네릭 컬렉션을 사용하면 형식 안전성이 보장됩니다. 제네릭에 대한 자세한 내용은 Visual Basic의 제네릭 형식을 참조하십시오.

예제

설명

다음 예제에서는 .NET Framework의 제네릭 클래스 System.Collections.Generic.List<T>을 사용하여 customer 구조체의 목록 컬렉션을 만듭니다.

코드

' Define the structure for a customer.
Public Structure customer
    Public name As String
    ' Insert code for other members of customer structure.
End Structure
' Create a module-level collection that can hold 200 elements.
Public custFile As New List(Of customer)(200) 
' Add a specified customer to the collection.
Private Sub addNewCustomer(ByVal newCust As customer)
    ' Insert code to perform validity check on newCust.
    custFile.Add(newCust)
End Sub
' Display the list of customers in the Debug window.
Private Sub printCustomers()
    For Each cust As customer In custFile
        Debug.WriteLine(cust)
    Next cust
End Sub

설명

custFile 컬렉션의 선언에서는 customer 형식의 요소만 포함할 수 있도록 지정합니다. 또한 이 선언에서는 초기 크기를 200개의 요소를 포함할 수 있는 크기로 지정합니다. addNewCustomer 프로시저에서는 새 요소의 유효성을 검사한 다음 이 요소를 컬렉션에 추가합니다. printCustomers 프로시저에서는 For Each 루프를 사용하여 컬렉션을 이동하고 해당 요소를 표시합니다.

참고 항목

작업

방법: 배열 변수 선언

방법: 배열 만들기

방법: 배열 변수 초기화

배열 문제 해결

개념

Visual Basic의 컬렉션

Visual Basic의 제네릭 형식

참조

ReDim 문(Visual Basic)

기타 리소스

Visual Basic의 배열