Collection 클래스


Visual Basic Collection은 하나의 단위로 참조할 수 있는 정렬된 항목 집합입니다.A Visual Basic Collection is an ordered set of items that can be referred to as a unit.

public ref class Collection sealed : System::Collections::IList, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public sealed class Collection : System.Collections.IList, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type Collection = class
    interface ICollection
    interface IList
    interface ISerializable
    interface IDeserializationCallback
Public NotInheritable Class Collection
Implements IDeserializationCallback, IList, ISerializable


다음 예에서는 사용자가 컬렉션에 개체 (이름)를 추가할 수 있는 대화 상자와 Collection 개체 names를 만듭니다.The following example creates the Collection object names and a dialog box with which a user can add objects (names) to the collection. 그런 다음 컬렉션에 이름을 표시 하 고, 마지막으로 Collection 개체 자체를 삭제 하지 않고 컬렉션을 비웁니다.It then displays the names in the collection, and finally empties the collection without disposing of the Collection object itself.

이 기능이 어떻게 작동 하는지 확인 하려면 프로젝트 메뉴에서 클래스 추가 명령을 선택 하 고 nameClass (Public instanceName형식) 모듈 수준에서 instanceName 라는 공용 변수를 선언 하 여 각 인스턴스의 이름을 보유 합니다.To see how this works, choose the Add Class command from the Project menu and declare a public variable called instanceName at the module level of nameClass (type Public instanceName) to hold the names of each instance. 기본 이름을 nameClass으로 그대로 둡니다.Leave the default name as nameClass. 다음 코드를 복사 하 여 다른 모듈의 일반 섹션에 붙여넣은 다음 다른 프로시저의 classNamer 문으로 시작 합니다.Copy and paste the following code into the General section of another module, and then start it with the statement classNamer in another procedure. (이 예제에서는 클래스를 지 원하는 호스트 애플리케이션 에서만 작동 합니다.)(This example works only with host applications that support classes.)

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.
        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
        ' Since Visual Basic collections are reindexed automatically, 
        ' remove the first member on each iteration.
    Next count
End Sub



가능 하면 Visual Basic Collection대신 System.Collections.Generic 네임 스페이스 또는 System.Collections.Concurrent 네임 스페이스의 제네릭 컬렉션을 사용 해야 합니다.Whenever possible, you should use the generic collections in the System.Collections.Generic namespace or the System.Collections.Concurrent namespace instead of a Visual Basic Collection. 자세한 내용은 컬렉션을 참조 하세요.For more information, see Collections.

Visual Basic Collection 개체는 관련 항목 그룹을 단일 개체로 참조할 수 있는 편리한 방법을 제공 합니다.The Visual Basic Collection object provides a convenient way to refer to a related group of items as a single object. 컬렉션에 있는 항목 또는 요소는 컬렉션에 존재 하는 팩트와 관련 되어야 합니다.The items, or elements, in a collection need only be related by the fact that they exist in the collection. 컬렉션의 요소는 동일한 데이터 형식을 공유할 필요가 없습니다.Elements of a collection do not have to share the same data type.

다음 예제와 같이 다른 개체를 만든 동일한 방식으로 컬렉션을 만들 수 있습니다.You can create a collection the same way you create other objects, as the following example illustrates.

Dim coll As New Microsoft.VisualBasic.Collection()  

컬렉션을 만든 후 다음 중 하나를 수행할 수 있습니다.Once you have created a collection, you can do any of the following:

  • Add 메서드를 사용 하 여 요소를 추가 합니다.Add an element with the Add method.

  • Remove 메서드를 사용 하 여 요소를 제거 합니다.Remove an element with the Remove method.

  • Clear 메서드를 사용 하 여 모든 요소를 제거 합니다.Remove all elements with the Clear method.

  • Count 속성을 사용 하 여 컬렉션에 포함 된 요소 수를 확인 합니다.Find out how many elements the collection contains with the Count property.

  • 특정 요소가 Contains 메서드에 있는지 여부를 확인 합니다.Check whether a specific element is present with the Contains method.

  • Item[String] 속성을 사용 하 여 컬렉션에서 특정 요소를 반환 합니다.Return a specific element from the collection with the Item[String] property.

  • For Each ...를 사용 하 여 전체 컬렉션을 반복 합니다. 다음 문.Iterate through the entire collection with the For Each...Next Statement.


    Visual Basic Collection 개체는 Visual Basic 6.0의 Collection 개체와 동일한 기능을 포함 하지만, 두 가지는 COM 환경에서 상호 운용할 수 없습니다.Although the Visual Basic Collection object has functionality identical to the Collection object in Visual Basic 6.0, the two cannot interoperate in a COM environment.


    Visual Basic Collection를 반복 하는 것은 스레드로부터 안전 하지 않습니다.Iterating through a Visual Basic Collection is not a thread-safe procedure. 컬렉션이 동기화 되는 경우에 다른 스레드에서 예외를 throw 하면 열거자는 컬렉션을 수정할 여전히 있습니다.Even if the collection is synchronized, other threads can still modify the collection, causing the enumerator to throw an exception. 을 열거 하는 동안 스레드로부터 안전을 보장 하기 위해 컬렉션을 잠금 또는 다른 스레드에서 변경에서 발생 되는 예외를 catch 합니다.To guarantee thread safety during enumeration, either lock the collection or catch the exceptions resulting from changes made by other threads. 프로그래밍 요소를 잠그는 방법에 대 한 자세한 내용은 SyncLock 문을 참조 하세요.For more information on locking a programming element, see SyncLock Statement.



새 Visual Basic Collection 개체를 만들어 반환합니다.Creates and returns a new Visual Basic Collection object.



컬렉션에 있는 요소 수를 가져옵니다.Gets the number of elements in a collection.


위치나 키를 기준으로 Collection 개체의 특정 요소를 가져옵니다.Gets a specific element of a Collection object either by position or by key.


위치나 키를 기준으로 Collection 개체의 특정 요소를 가져옵니다.Gets a specific element of a Collection object either by position or by key.


위치나 키를 기준으로 Collection 개체의 특정 요소를 가져옵니다.Gets a specific element of a Collection object either by position or by key.


Add(Object, String, Object, Object)

Collection 개체에 요소를 추가합니다.Adds an element to a Collection object.


Visual Basic Collection 개체의 모든 요소를 삭제합니다.Deletes all elements of a Visual Basic Collection object.


Visual Basic Collection 개체에 특정 키를 가진 요소가 포함되어 있는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether a Visual Basic Collection object contains an element with a specific key.


지정한 개체가 현재 개체와 같은지를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)

컬렉션에서 반복되는 열거자를 반환합니다.Returns an enumerator that iterates through the collection.


기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)

Collection 개체에서 요소를 제거합니다.Removes an element from a Collection object.


Collection 개체에서 요소를 제거합니다.Removes an element from a Collection object.


현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

ICollection.CopyTo(Array, Int32)

특정 Collection 인덱스부터 시작하여 Array의 요소를 Array에 복사합니다.Copies the elements of the Collection to an Array, starting at a particular Array index.


이 컬렉션의 항목 수를 가져옵니다.Gets the number of items in this collection.


Collection 개체에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether access to the Collection object is synchronized (thread-safe).


Collection 개체에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.Gets an object that can be used to synchronize access to the Collection object.


전체 Collection 개체 그래프가 역직렬화된 후 실행됩니다.Runs after the entire Collection object graph has been deserialized.


컬렉션을 반복 하는 열거자를 가져옵니다.Gets an enumerator that iterates through the collection.


컬렉션에 항목을 추가합니다.Adds an item to the collection.


Collection 개체에서 항목을 모두 제거합니다.Removes all items from the Collection object.


Collection 개체에 특정 값이 들어 있는지 여부를 확인합니다.Determines whether the Collection object contains a specific value.


Collection 개체에서 특정 항목의 인덱스를 확인합니다.Determines the index of a specific item in the Collection object.

IList.Insert(Int32, Object)

Collection 개체의 지정한 인덱스에 항목을 삽입합니다.Inserts an item to the Collection object at the specified index.


Collection 개체의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the Collection object has a fixed size.


Collection 개체가 있는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the Collection object is.


지정한 인덱스에 있는 요소를 가져오거나 설정합니다.Gets or sets the element at the specified index.


Collection 개체에서 특정 개체가 처음 나타나는 부분을 제거합니다.Removes the first occurrence of a specific object from the Collection object.


지정한 인덱스에 있는 Collection 개체 항목을 제거합니다.Removes the Collection object item at the specified index.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Collection 개체를 serialize하는 데 필요한 데이터를 반환합니다.Returns the data needed to serialize the Collection object.

확장 메서드


IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.Casts the elements of an IEnumerable to the specified type.


지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.Filters the elements of an IEnumerable based on a specified type.


쿼리를 병렬화할 수 있도록 합니다.Enables parallelization of a query.


IEnumerableIQueryable로 변환합니다.Converts an IEnumerable to an IQueryable.

적용 대상