다음을 통해 공유


Collection 개체(Visual Basic)

업데이트: 2007년 11월

Visual Basic Collection은 하나의 단위로 참조될 수 있는 정렬된 항목 집합입니다.

설명

Visual Basic Collection 개체를 사용하면 편리하게 관련 항목 그룹을 단일 개체로서 참조할 수 있습니다. 컬렉션의 항목 또는 요소는 한 컬렉션에 위치한다는 점에 있어서만 서로 관련이 있습니다. 컬렉션의 요소가 같은 데이터 형식을 공유할 필요는 없습니다.

다음 예제에 나온 것처럼 다른 개체를 만들 때와 같은 방법으로 컬렉션을 만들 수 있습니다.

Dim coll As New Microsoft.VisualBasic.Collection()

컬렉션을 만든 후에 다음 중 원하는 작업을 수행할 수 있습니다.

  • Add 메서드를 사용하는 요소 추가

  • Remove 메서드를 사용하는 요소 제거

  • Clear 메서드를 사용하는 모든 요소 제거

  • Count 속성을 사용하여 컬렉션에 포함된 요소 수 확인

  • Contains 메서드를 사용하여 특정 요소가 존재하는지 확인

  • Item 속성을 사용하여 컬렉션에서 특정 요소 반환

  • For Each...Next 문(Visual Basic)을 사용하여 전체 컬렉션 반복

    참고:

    Visual Basic Collection 개체에는 Visual Basic 6.0의 Collection 개체와 동일한 기능이 있지만 COM 환경에서 두 개체는 상호 운용될 수 없습니다.

    주의:

    Visual Basic Collection을 반복하는 것은 스레드로부터 안전한 프로시저가 아닙니다. 컬렉션이 동기화된 경우에도 다른 스레드에서 컬렉션을 수정할 수 있습니다. 이 경우 열거자는 예외를 throw합니다. 열거하는 동안 스레드로부터의 안전성을 보장하려면 컬렉션을 잠그거나 다른 스레드가 컬렉션을 변경하여 발생되는 예외를 catch하십시오. 프로그래밍 요소를 잠그는 방법에 대한 자세한 내용은 SyncLock 문을 참조하십시오.

예제

다음 예제에서는 Collection 개체 names를 만들고 사용자가 개체(names)를 컬렉션에 추가하는 데 사용할 수 있는 대화 상자를 만듭니다. 그런 다음 컬렉션의 이름을 표시하고 마지막으로 Collection 개체 자체는 삭제하지 않은 컬렉션을 비웁니다.

이 예제의 기능을 보려면 프로젝트 메뉴에서 클래스 추가 명령을 선택하고 instanceName이라는 공용 변수를 nameClass의 모듈 수준에서 선언하여(Public instanceName 입력) 각 인스턴스의 이름이 포함되도록 합니다. 기본 이름을 nameClass로 그대로 둡니다. 다음 코드를 복사해서 다른 모듈의 General 섹션에 붙여넣은 다음 다른 프로시저에서 classNamer 문을 사용하여 코드를 시작합니다. 이 예제는 클래스를 지원하는 호스트 응용 프로그램에서만 작동합니다.

Public Class nameClass
    Public instanceName As String
End Class
Sub classNamer()
    ' Create a Visual Basic Collection object.
    Dim names As New Microsoft.VisualBasic.Collection()
    Dim key As Integer
    Dim msg As String
    Dim name As String
    Dim nameList As String = ""
    ' 1. Get names from the user to add to the collection.
    Do
        Dim inst As New nameClass()
        key += 1
        msg = "Please enter a name for this object." & vbCrLf _
            & "Press Cancel to see names in collection."
        name = InputBox(msg, "Name the Collection items")
        inst.instanceName = name
        ' If user entered a name, add it to the collection.
        If inst.instanceName <> "" Then
            names.Add(inst, CStr(key))
        End If
    Loop Until name = ""
    ' 2. Create and display a list of names from the collection.
    For Each oneInst As nameClass In names
        nameList &= oneInst.instanceName & vbCrLf
    Next oneInst
    MsgBox(nameList, , "Instance Names in names Collection")
    ' 3. Remove elements from the collection without disposing of the collection.
    For count As Integer = 1 To names.Count
        names.Remove(1)
        ' Since Visual Basic collections are reindexed automatically, 
        ' remove the first member on each iteration.
    Next count
End Sub

요구 사항

네임스페이스:Microsoft.VisualBasic

**어셈블리:**Visual Basic 런타임 라이브러리(Microsoft.VisualBasic.dll)

참고 항목

참조

Collection 개체 멤버

GetEnumerator 메서드(Collection 개체)