다음을 통해 공유


Visual Basic을 사용한 .NET Framework의 컬렉션

업데이트: 2007년 11월

.NET Framework에서는 데이터 저장 및 검색을 위한 특수한 클래스를 제공합니다. 이들 클래스는 스택, 큐, 목록 및 해시 테이블에 대한 지원을 제공합니다. 대부분의 컬렉션 클래스는 같은 인터페이스를 구현합니다. 필요한 경우 이들 인터페이스를 구현하여 컬렉션 클래스를 직접 만들 수 있습니다.

자신의 필요에 가장 적합한 형식의 클래스를 알아야 합니다.

Visual Basic과 .NET Framework 간의 컬렉션 클래스 차이

.NET Framework 컬렉션 클래스는 System.Collections, System.Collections.Generic, System.Collections.SpecializedSystem.Collections.ObjectModel 네임스페이스에서 정의됩니다. Visual Basic 컬렉션 클래스와 .NET Framework 컬렉션 클래스의 주된 차이점은 다음과 같습니다.

  • 기본 인덱스. .NET Framework 컬렉션은 0부터 시작하고 Visual Basic 컬렉션은 1부터 시작합니다. 즉, Visual Basic 컬렉션 요소의 인덱스 값은 1부터 Count 속성(Collection 개체) 값까지이며, .NET Framework 컬렉션 요소의 인덱스 값은 0부터 컬렉션의 Count 속성 값보다 1 작은 값까지입니다.

  • 요소 형식. Visual Basic 컬렉션은 Object 형식의 요소를 지원합니다. 이 컬렉션은 형식이 안전하지 않으므로 원하는 데이터 형식의 요소를 추가할 수 있습니다. 이 경우 요소를 Object 데이터 형식에서 실제 형식으로 변환해야 하므로 일반적으로 성능이 저하됩니다.

    .NET Framework의 일부 컬렉션에는 Object 형식의 요소도 있지만 강력한 형식의 요소가 많습니다. 이것은 이들 컬렉션이 특정 형식의 요소를 지원하므로 형식이 안전하고 따라서 일반적으로 최적의 성능을 제공한다는 것을 의미합니다.

  • 키 요소. Visual Basic 컬렉션에서는 요소를 추가할 때 키를 지정할 수 있습니다. 키는 나중에 해당 요소에 액세스할 때 사용할 수 있는 고유한 문자열 값입니다. .NET Framework 컬렉션은 키와 관련해 볼 때 다양합니다.키를 지원하는 컬렉션도 있고 지원하지 않는 컬렉션도 있습니다.

System.Collections 클래스

System.Collections 네임스페이스의 클래스는 요소를 특정 형식의 개체로 저장하지 않고 Object 형식의 개체로 저장합니다.

다음 표에서는 일반적으로 사용되는 클래스 중 일부를 나열합니다.

클래스

설명

ArrayList

필요에 따라 크기가 동적으로 증가하는 배열을 사용하여 IList 인터페이스를 구현합니다.

BitArray

Boolean 값으로 표현되는 압축된 비트 값 배열을 관리합니다. True는 비트가 on(1)임을 나타내고 False는 비트가 off(0)임을 나타냅니다.

Hashtable

키의 해시 코드에 따라 구성된 키/값 쌍의 컬렉션을 나타냅니다.

Queue

FIFO(선입선출) 방식의 개체 컬렉션을 나타냅니다.

Stack

제네릭이 아닌 간단한 LIFO(후입선출) 방식의 개체 컬렉션을 나타냅니다.

System.Collections.Generic 및 System.Collections.ObjectModel 클래스

System.Collections.GenericSystem.Collections.ObjectModel 네임스페이스는 강력한 형식의 컬렉션을 만들 수 있고 이를 만들 때 요소 데이터 형식을 지정할 수 있는 제네릭 형식을 제공합니다.

다음 표에서는 일반적으로 사용되는 클래스 중 일부를 나열합니다.

클래스

설명

Collection<T>

제네릭 컬렉션의 기본 클래스를 제공합니다.

Dictionary<TKey, TValue>

키를 기반으로 구성된 키/값 쌍의 컬렉션을 나타냅니다.

KeyedCollection<TKey, TItem>

키가 값 내에 포함된 컬렉션의 추상 기본 클래스를 제공합니다.

LinkedList<T>

이중 연결 목록을 나타냅니다.

LinkedListNode<T>

LinkedList<T>의 노드를 나타냅니다. 이 클래스는 상속될 수 없습니다.

List<T>

필요에 따라 크기가 동적으로 증가하는 배열을 사용하여 IList<T> 인터페이스를 구현합니다.

Queue<T>

FIFO 방식의 개체 컬렉션을 나타냅니다.

SortedDictionary<TKey, TValue>

키에 따라 정렬된 키/값 쌍의 컬렉션을 나타냅니다.

SortedList<TKey, TValue>

연관된 IComparer<T> 구현을 기반으로 키에 따라 정렬된 키/값 쌍의 컬렉션을 나타냅니다.

Stack<T>

동일한 임의 형식의 인스턴스로 이루어진 가변 크기 LIFO(후입선출) 방식의 컬렉션을 나타냅니다.

ReadOnlyCollection<T>

제네릭 읽기 전용 컬렉션의 기본 클래스를 제공합니다.

System.Collections.Specialized 클래스

System.Collections.Specialized 네임스페이스는 문자열 전용 컬렉션과 연결 목록 및 혼합형 사전 등과 같은 특수화된 강력한 형식의 컬렉션 클래스를 제공합니다.

다음 표에서는 일반적으로 사용되는 클래스 중 일부를 나열합니다.

클래스

설명

CollectionsUtil

문자열의 대/소문자를 무시하는 컬렉션을 만듭니다.

HybridDictionary

컬렉션이 작을 때는 ListDictionary를 사용하여 IDictionary를 구현한 다음 컬렉션이 커지면 Hashtable로 전환합니다.

ListDictionary

단일 연결 목록을 사용하여 IDictionary를 구현합니다. 일반적으로 10개 이하의 항목이 포함된 컬렉션에 사용하는 것이 좋습니다.

NameObjectCollectionBase

키 또는 인덱스로 액세스할 수 있는 연관된 문자열 키와 개체 값의 컬렉션에 대한 추상 기본 클래스를 제공합니다.

NameValueCollection

키 또는 인덱스로 액세스할 수 있는 연관된 문자열 키와 문자열 값의 컬렉션을 나타냅니다.

OrderedDictionary

키 또는 인덱스를 기반으로 순서가 지정된 키/값 쌍의 컬렉션을 나타냅니다.

StringCollection

문자열 컬렉션을 나타냅니다.

StringDictionary

개체가 아니라 문자열로 강력하게 형식화된 키와 값을 사용하여 해시 테이블을 구현합니다.

참고 항목

개념

Visual Basic의 컬렉션

참조

Collection 개체(Visual Basic)

기타 리소스

Visual Basic 추가 정보