일반적으로 사용되는 컬렉션 형식
업데이트: 2007년 11월
컬렉션 형식은 해시 테이블, 쿼리, 스택, 사전, 목록 등의 일반적인 데이터 컬렉션입니다.
컬렉션은 ICollection 인터페이스, IList 인터페이스, IDictionary 인터페이스 또는 해당 제네릭 요소를 기반으로 합니다. IList 인터페이스 및 IDictionary 인터페이스는 모두 ICollection 인터페이스에서 파생되므로, 모든 컬렉션은 직접 또는 간접적으로 ICollection 인터페이스를 기반으로 합니다. IList 인터페이스를 기반으로 하는 컬렉션(예: Array, ArrayList 또는 List<T>) 또는 ICollection 인터페이스와 직접 관련된 컬렉션(예: Queue, Stack 또는 LinkedList<T>)에서 모든 요소에는 하나의 값만 포함됩니다. IDictionary 인터페이스를 기반으로 하는 컬렉션(예: Hashtable 및 SortedList 클래스 또는 Dictionary<TKey, TValue> 및 SortedList<TKey, TValue> 제네릭 클래스)에서는 모든 요소에 키와 값이 모두 포함됩니다. KeyedCollection<TKey, TItem> 클래스는 값에 키가 포함된 값 목록이기 때문에 고유하며 목록이나 사전처럼 동작합니다.
강력한 형식 지정에는 제네릭 컬렉션을 사용하는 것이 가장 적합합니다. 그러나 사용 중인 언어에서 제네릭을 지원하지 않는 경우, System.Collections 네임스페이스는 CollectionBase, ReadOnlyCollectionBase 및 DictionaryBase와 같은 기본 컬렉션을 포함하며, 이 기본 컬렉션은 강력한 형식의 컬렉션 클래스를 만들도록 확장할 수 있는 추상 기본 클래스입니다.
컬렉션은 요소가 저장되는 방식, 요소가 정렬되는 방식, 검색이 수행되는 방식 및 비교가 이루어지는 방식에 따라 달라집니다. 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 Objects를 참조하십시오.
단원 내용
Array 컬렉션 형식
컬렉션과 같이 취급될 수 있는 배열 기능에 대해 설명합니다.ArrayList 및 List 컬렉션 형식
가장 일반적으로 사용되는 컬렉션 형식인 제네릭 목록 및 제네릭이 아닌 목록의 기능에 대해 설명합니다.Hashtable 및 Dictionary 컬렉션 형식
제네릭 및 제네릭이 아닌 해시 기반 사전 형식의 기능에 대해 설명합니다.SortedList 및 SortedDictionary 컬렉션 형식
사전과 목록 기능을 결합하는 하이브리드 형식 및 정렬된 사전에 대해 설명합니다.Queue 컬렉션 형식
제네릭 및 제네릭이 아닌 큐의 기능에 대해 설명합니다.Stack 컬렉션 형식
제네릭 및 제네릭이 아닌 스택의 기능에 대해 설명합니다.HashSet 컬렉션 형식
제네릭 HashSet<T> 컬렉션 형식을 설명합니다.HashSet 및 LINQ 집합 작업
HashSet<T> 컬렉션 형식에서 제공되는 집합 작업 및 LINQ 집합 작업에 대해 설명합니다.
참조
System.Collections
개체의 다양한 컬렉션을 정의하는 인터페이스와 클래스를 포함하는 System.Collections 네임스페이스에 대한 참조 설명서를 제공합니다.System.Collections.Generic
제네릭 컬렉션을 정의하는 인터페이스와 클래스를 포함하는 System.Collections.Generic 네임스페이스에 대한 참조 설명서를 제공합니다.System.Collections.ICollection
모든 제네릭이 아닌 컬렉션에 대해 크기, 열거자 및 동기화 메서드를 정의하는 ICollection 클래스의 주요 기능에 대해 설명합니다.System.Collections.Generic.ICollection<T>
제네릭 컬렉션을 조작하는 메서드를 정의하는 ICollection<T> 클래스의 주요 기능에 대해 설명합니다.System.Collections.IList
인덱스에서 개별적으로 액세스될 수 있는 개체의 제네릭이 아닌 컬렉션을 나타내는 IList 클래스의 주요 기능에 대해 설명합니다.System.Collections.Generic.IList<T>
인덱스에서 개별적으로 액세스될 수 있는 개체의 컬렉션을 나타내는 IList<T> 클래스의 주요 기능에 대해 설명합니다.System.Collections.IDictionary
키/값 쌍의 제네릭이 아닌 컬렉션을 나타내는 IDictionary 클래스의 주요 기능에 대해 설명합니다.System.Collections.Generic.IDictionary<TKey, TValue>
키/값 쌍의 제네릭 컬렉션을 나타내는 IDictionary<TKey, TValue> 클래스의 주요 기능에 대해 설명합니다.
관련 단원
컬렉션 및 데이터 구조
스택, 쿼리, 목록, 배열 및 구조체를 포함하여 .NET Framework에서 사용 가능한 여러 가지 컬렉션 형식에 대해 설명합니다..NET Framework의 제네릭
.NET Framework에서 제공하는 제네릭 컬렉션, 대리자 및 인터페이스를 포함한 제네릭 기능에 대해 설명합니다. C#, Visual Basic 및 Visual C++에 대한 기능 설명서와 리플렉션 같은 지원 기술을 볼 수 있는 링크를 제공합니다.