다음을 통해 공유


일반적으로 사용되는 컬렉션 형식

컬렉션 형식은 해시 테이블, 큐, 스택, 모음, 사전, 목록 등의 일반적인 데이터 컬렉션입니다.

컬렉션은 ICollection 인터페이스, IList 인터페이스, IDictionary 인터페이스 또는 해당 제네릭 요소를 기반으로 합니다. IList 인터페이스와 IDictionary 인터페이스는 모두 ICollection 인터페이스에서 파생되므로 모든 컬렉션은 직접 또는 간접적으로 ICollection 인터페이스를 기반으로 합니다. Array, ArrayList, List<T> 등과 같이 IList 인터페이스를 기반으로 하는 컬렉션이나 Queue, ConcurrentQueue<T>, Stack, ConcurrentStack<T>, LinkedList<T> 등과 같이 ICollection 인터페이스를 직접적인 기반으로 삼는 컬렉션의 모든 요소에는 값이 한 개만 포함됩니다. HashtableSortedList 클래스, Dictionary<TKey, TValue>SortedList<TKey, TValue> 제네릭 클래스 등과 같이 IDictionary 인터페이스를 기반으로 하는 컬렉션이나 ConcurrentDictionary<TKey, TValue> 클래스를 기반으로 하는 컬렉션의 모든 요소에는 키와 값이 한 개씩 포함됩니다. KeyedCollection<TKey, TItem> 클래스는 값에 키가 포함된 값 목록이기 때문에 고유하며 목록이나 사전처럼 동작합니다.

강력한 서식 지정에는 제네릭 컬렉션을 사용하는 것이 가장 적합합니다. 그러나 사용 중인 언어에서 제네릭을 지원하지 않는 경우, System.Collections 네임스페이스는 CollectionBase, ReadOnlyCollectionBaseDictionaryBase와 같은 기본 컬렉션을 포함하며, 이 기본 컬렉션은 강력한 형식의 컬렉션 클래스를 만들도록 확장할 수 있는 추상 기본 클래스입니다. 효율적인 다중 스레드 컬렉션 액세스가 필요한 경우 System.Collections.Concurrent 네임스페이스에서 제네릭 컬렉션을 사용합니다.

컬렉션은 요소가 저장되는 방식, 요소가 정렬되는 방식, 검색이 수행되는 방식 및 비교가 이루어지는 방식에 따라 달라집니다. Queue 클래스 및 Queue<T> 제네릭 클래스는 FIFO(선입 선출) 목록을 제공하지만 Stack 클래스 및 Stack<T> 제네릭 클래스는 LIFO(후입 선출) 목록을 제공합니다. SortedList 클래스 및 SortedList<TKey, TValue> 제네릭 클래스는 정렬된 버전의 Hashtable 클래스 및 Dictionary<TKey, TValue> 제네릭 클래스를 제공합니다. Hashtable 또는 Dictionary<TKey, TValue>의 요소는 요소의 키로만 액세스할 수 있지만 SortedList 또는 KeyedCollection<TKey, TItem>의 요소는 요소의 키 또는 인덱스로 액세스가 가능합니다. 모든 컬렉션의 인덱스는 0부터 시작되지 않는 배열을 허용하는 Array를 제외하고 모두 0부터 시작됩니다.

LINQ to Objects 기능을 사용하면 개체 형식이 IEnumerable 또는 IEnumerable<T>을 구현하는 경우 LINQ 쿼리를 통해 메모리 내 개체에 액세스할 수 있습니다. LINQ 쿼리는 데이터 액세스를 위한 일반 패턴을 제공하고, 표준 foreach 루프에 비해 간결하고 쉽게 읽을 수 있으며, 필터링, 순서 지정 및 그룹화 기능을 제공합니다. 또한 LINQ 쿼리를 통해 성능을 향상시킬 수도 있습니다. 자세한 내용은 LINQ to ObjectsPLINQ(병렬 LINQ)를 참조하십시오.

관련 항목

제목

설명

Array 컬렉션 형식

컬렉션과 같이 취급될 수 있는 배열 기능에 대해 설명합니다.

ArrayList 및 List 컬렉션 형식

가장 일반적으로 사용되는 컬렉션 형식인 제네릭 목록 및 제네릭이 아닌 목록의 기능에 대해 설명합니다.

Hashtable 및 Dictionary 컬렉션 형식

제네릭 및 제네릭이 아닌 해시 기반 사전 형식의 기능에 대해 설명합니다.

Sorted 컬렉션 형식

목록과 집합에 대한 정렬 기능을 제공하는 클래스를 설명합니다.

Queue 컬렉션 형식

제네릭 및 제네릭이 아닌 큐의 기능에 대해 설명합니다.

Stack 컬렉션 형식

제네릭 및 제네릭이 아닌 스택의 기능에 대해 설명합니다.

HashSet 컬렉션 형식

제네릭 System.Collections.Generic.HashSet<T> 컬렉션 형식을 설명합니다.

HashSet 및 LINQ 집합 작업

System.Collections.Generic.HashSet<T> 컬렉션 형식에서 제공되는 집합 작업 및 LINQ 집합 작업에 대해 설명합니다.

컬렉션 및 데이터 구조

스택, 쿼리, 목록, 배열 및 구조체를 포함하여 .NET Framework에서 사용 가능한 여러 가지 컬렉션 형식에 대해 설명합니다.

.NET Framework의 제네릭

.NET Framework에서 제공하는 제네릭 컬렉션, 대리자 및 인터페이스를 포함한 제네릭 기능에 대해 설명합니다. C#, Visual Basic 및 Visual C++에 대한 기능 설명서와 리플렉션 같은 지원 기술을 볼 수 있는 링크를 제공합니다.

참조

System.Collections

System.Collections.Generic

System.Collections.ICollection

System.Collections.Generic.ICollection<T>

System.Collections.IList

System.Collections.Generic.IList<T>

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey, TValue>