.NET의 제네릭 컬렉션

.NET 클래스 라이브러리는 System.Collections.GenericSystem.Collections.ObjectModel 네임스페이스에서 다양한 제네릭 컬렉션 클래스를 제공합니다. 이러한 클래스에 대한 자세한 내용은 일반적으로 사용되는 컬렉션 형식을 참조하세요.

System.Collections.Generic

대부분의 제네릭 컬렉션 형식은 제네릭이 아닌 형식과 직접적인 연관이 있습니다. Dictionary<TKey,TValue>Hashtable의 제네릭 버전으로, DictionaryEntry 대신 제네릭 구조체인 KeyValuePair<TKey,TValue>를 열거형에 사용합니다.

List<T>ArrayList의 제네릭 버전입니다. 제네릭이 아닌 버전에 해당하는 제네릭 Queue<T>Stack<T> 클래스가 있습니다.

SortedList<TKey,TValue>의 제네릭 버전과 제네릭이 아닌 버전이 있습니다. 두 버전은 모두 사전과 목록의 하이브리드입니다. SortedDictionary<TKey,TValue> 제네릭 클래스는 순수 사전이며 제네릭이 아닌 대응 항목이 없습니다.

LinkedList<T> 제네릭 클래스는 연결된 목록입니다. 제네릭이 아닌 대응 항목이 없습니다.

System.Collections.ObjectModel

Collection<T> 제네릭 클래스는 고유한 제네릭 컬렉션 형식을 파생시키기 위한 기본 클래스를 제공합니다. ReadOnlyCollection<T> 클래스는 IList<T> 제네릭 인터페이스를 구현하는 형식에서 읽기 전용 컬렉션을 생성하는 편리한 방법을 제공합니다. KeyedCollection<TKey,TItem> 제네릭 클래스는 고유한 키를 포함하는 개체를 저장하는 방법을 제공합니다.

기타 제네릭 형식

Nullable<T> 제네릭 구조체를 통해 null이 할당될 수 있는 것처럼 값 형식을 사용할 수 있습니다. 이 기능은 값 형식을 포함하는 필드가 누락될 수 있는 데이터베이스 쿼리를 사용할 때 유용할 수 있습니다. 제네릭 형식 매개 변수는 임의의 값 형식일 수 있습니다.

참고

C# 및 Visual Basic에서는 언어에 nullable 형식에 대한 구문이 있기 때문에 명시적으로 Nullable<T>을 사용할 필요가 없습니다. Nullable 값 형식(C# 참조)Nullable 값 형식(Visual Basic)을 참조하세요.

ArraySegment<T> 제네릭 구조체는 0부터 시작하는 임의 형식의 1차원 배열 내에서 요소 범위를 구분하는 방법을 제공합니다. 제네릭 형식 매개 변수는 배열 요소의 형식입니다.

이벤트가 .NET에서 사용되는 이벤트 처리 패턴을 따르는 경우 EventHandler<TEventArgs> 제네릭 대리자를 사용하면 이벤트를 처리할 대리자 형식을 선언할 필요가 없습니다. 예를 들어 이벤트 데이터를 저장할 EventArgs에서 파생된 MyEventArgs 클래스를 만들었다고 가정합니다. 그런 다음 이벤트를 다음과 같이 선언할 수 있습니다.

public:
    event EventHandler<MyEventArgs^>^ MyEvent;
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)

참조