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

컬렉션 형식은 해시 테이블, 큐, 스택, 모음, 사전 및 목록과 같은 데이터를 수집하는 다양한 방법을 나타냅니다.

모든 컬렉션은 직접적으로든 간접적으로든 ICollection 또는 ICollection<T> 인터페이스를 기반으로 합니다. IList, IDictionary(와)과 그 제네릭 대응 항목은 모두 이러한 두 인터페이스에서 파생됩니다.

IList(을)를 기반으로 하는 컬렉션에서 또는 직접적으로 ICollection에서, 모든 요소에는 값만 포함됩니다. 이러한 유형에는 다음이 포함됩니다.

IDictionary 인터페이스를 기반으로 하는 컬렉션에서, 모든 요소에는 키와 값이 모두 포함됩니다. 이러한 유형에는 다음이 포함됩니다.

KeyedCollection<TKey,TItem> 클래스는 값 내에 포함된 키가 있는 값 목록이므로 고유합니다. 결과적으로 목록과 사전처럼 동작합니다.

다중 스레드 컬렉션에 효율적으로 액세스해야 하는 경우에는 System.Collections.Concurrent 네임 스페이스에서 제네릭 컬렉션을 사용합니다.

QueueQueue<T> 클래스는 선입 선출 목록을 제공합니다. StackStack<T> 클래스는 후입 선출 목록을 제공합니다.

강력한 형식화

강력한 형식을 지정하려면 제네릭 컬렉션을 사용하는 것이 가장 좋습니다. 예를 들어 List<Int32> 컬렉션에 Int32 이외의 형식 요소를 추가하면 컴파일 시간 오류가 발생합니다. 그러나 언어에서 제네릭을 지원하지 않는 경우 System.Collections 네임스페이스에는 강력한 형식의 컬렉션 클래스를 만들기 위해 확장할 수 있는 추상 기본 클래스가 포함됩니다. 이러한 기본 클래스는 다음과 같습니다.

컬렉션의 차이

컬렉션은 요소를 저장, 정렬 및 비교하는 방법과 검색을 수행하는 방법에 따라 다릅니다.

SortedList 클래스와 SortedList<TKey,TValue> 제네릭 클래스는 Hashtable 클래스 및 Dictionary<TKey,TValue> 제네릭 클래스의 정렬된 버전을 제공합니다.

모든 컬렉션은 Array(0부터 시작하지 않는 배열을 허용함)(을)를 제외하고 0부터 시작되는 인덱스를 사용합니다.

키 또는 요소의 인덱스로 SortedList 또는 KeyedCollection<TKey,TItem>의 요소에 액세스할 수 있습니다. 요소의 키에 따라 Hashtable 또는 Dictionary<TKey,TValue>의 요소만 액세스할 수 있습니다.

컬렉션 형식으로 LINQ 사용

LINQ to Objects 기능은 IEnumerable 또는 IEnumerable<T>(을)를 구현하는 모든 형식의 메모리 내 개체에 액세스하기 위한 일반적인 패턴을 제공합니다. LINQ 쿼리는 foreach 루프와 같은 표준 구문에 비해 몇 가지 이점이 있습니다.

  • 간결하고 이해하기 쉽습니다.
  • 데이터를 필터링, 정렬 및 그룹화할 수 있습니다.
  • 성능을 향상시킬 수 있습니다.

자세한 내용은 LINQ to Objects(C#), LINQ to Objects(Visual Basic)병렬 LINQ(PLINQ)를 참조하세요.

제목 설명
컬렉션 및 데이터 구조 스택, 큐, 목록, 배열, 사전을 비롯하여 .NET에서 사용 가능한 다양한 컬렉션 형식에 대해 설명합니다.
Hashtable 및 Dictionary 컬렉션 형식 제네릭 및 제네릭이 아닌 해시 기반 사전 형식의 기능을 설명합니다.
Sorted 컬렉션 형식 목록 및 집합용 정렬 기능을 제공하는 클래스에 대해 설명합니다.
제네릭 .NET에서 제공하는 제네릭 컬렉션, 대리자, 인터페이스를 비롯한 제네릭 기능에 대해 설명합니다. 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>