방법: 컬렉션의 항목 추가, 삭제 및 검색
업데이트: 2007년 11월
Visual Basic의 Collection 클래스에는 항목을 추가, 삭제 및 검색하는 데 사용할 수 있는 기능이 기본적으로 포함되어 있습니다.
항목을 새로 만들었거나 가져온 후 즉시 컬렉션에 추가할 수 있습니다(예: 새 고객).
항목이 컬렉션에 더 이상 포함되지 않을 경우 컬렉션에서 해당 항목을 삭제할 수 있습니다(예: 직원이 회사를 그만둔 경우).
컬렉션에서 항목을 검색하여 해당 내용을 편집할 수 있습니다(예: 학생의 전화 번호가 변경된 경우).
참고: |
---|
Collection 개체는 요소가 추가되거나 삭제되면 해당 숫자 인덱스 값을 자동으로 업데이트하므로 특정 요소의 숫자 인덱스가 자주 바뀔 수 있습니다. 따라서 숫자 인덱스 값을 저장한 다음 나중에 프로그램에서 이 값으로 동일한 요소를 검색할 수 없습니다. 이렇게 하려면 키를 사용하십시오. |
컬렉션에 항목을 추가하려면
Add 메서드(Collection 개체)를 사용하고 항목을 해당 Key로 지정합니다.
object.Add(Item, Key [, {Before | After}])
예를 들어, 작업 순서의 ID 속성을 키로 사용하여 작업 순서 컬렉션에 작업 순서 개체를 추가하려면 다음과 같이 호출하면 됩니다.
workOrders.Add(woNew, woNew.ID)
이 호출에서는 ID 속성을 문자열로 가정합니다. 이 속성이 숫자(예: Long 정수)이면 다음과 같이 ToString 메서드를 사용하여 숫자를 Key 인수에 필요한 String 값으로 변환합니다.
workOrders.Add(woNew, woNew.ID.ToString())
키 사용은 선택적입니다. 키와 컬렉션의 개체를 연결하지 않으려면 키를 사용하지 않고 개체를 추가합니다.
workOrders.Add(woNew)
선택적인 Before 및 After 인수를 사용하여 정렬된 개체 컬렉션을 유지 관리할 수 있습니다. 추가될 항목은 컬렉션에서 각각 Before 또는 After 인수로 식별되는 항목의 앞 또는 뒤에 놓입니다. 예를 들어, Before가 1로 설정되어 있으면 Collection 개체의 인덱스는 1부터 시작하므로 컬렉션의 맨 앞에 항목이 삽입됩니다.
workOrders.Add(woNew, woNew.ID, 1)
마찬가지로 After 인수는 지정된 인덱스 뒤에 항목을 추가합니다. 다음 예제에서는 항목을 세 번째 요소로 추가합니다.
workOrders.Add(woNew, woNew.ID,,2)
Before 또는 After 중 하나에 대해서만 값을 지정할 수 있습니다.
컬렉션에서 항목을 삭제하려면
Remove 메서드(Collection 개체)를 사용하고 항목을 해당 Index나 Key로 지정합니다.
object.Remove({Index | Key})
Index 인수는 삭제할 항목의 위치를 나타내고, Key 인수는 컬렉션에 항목을 추가할 때 사용된 문자열을 나타냅니다. 컬렉션에서 세 번째 요소의 키가 "W017493"이면 다음 문 중 하나를 사용하여 해당 키를 삭제할 수 있습니다.
workOrders.Remove(3) workOrders.Remove("W017493")
컬렉션에서 모든 항목을 삭제하려면
Clear 메서드(Collection 개체)를 사용합니다.
object.Clear()
Clear 메서드는 컬렉션을 비웁니다.
컬렉션에서 항목을 검색하려면
Item 속성(Collection 개체)을 사용하고 항목을 해당 Index나 Key로 지정합니다.
variable = object.Item({Index | Key})
Remove 메서드와 마찬가지로, Index 인수는 컬렉션에서의 항목 위치를 나타내고 Key 인수는 항목을 추가할 때 사용된 문자열을 나타냅니다. Remove 메서드와 동일한 예제를 사용할 경우 다음 문 중 하나를 사용하면 컬렉션의 세 번째 요소가 검색됩니다.
woCurrent = workOrders.Item(3) woCurrent = workOrders.Item("W017493")
참고: 숫자를 키로 사용하는 경우에는 키를 Add 또는 Remove 메서드나 Item 속성으로 전달하기 전에 ToString 메서드를 사용하여 숫자를 문자열로 변환해야 합니다. Visual Basic의 Collection 개체에서는 항상 숫자를 키 문자열이 아닌 인덱스로 간주합니다.
컴파일 타임에 키를 알고 있으면 키를 물음표나 괄호로 묶는 대신 사전 액세스 연산자(!)를 사용하여 컬렉션의 요소에 액세스할 수 있습니다. 앞의 호출은 다음과 같이 작성할 수 있습니다.
woCurrent = workOrders!W017493