다음을 통해 공유


.NET Framework의 제네릭 컬렉션

업데이트: 2007년 11월

이 항목에서는 .NET Framework의 제네릭 컬렉션 클래스와 기타 제네릭 형식에 대해 간략하게 설명합니다.

.NET Framework의 제네릭 컬렉션

.NET Framework 클래스 라이브러리에서는 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#에서는 언어에 nullable 형식에 대한 구문이 있으므로 Nullable<T>을 명시적으로 사용하지 않아도 됩니다.

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

이벤트가 .NET Framework에서 사용되는 이벤트 처리 패턴을 따르는 경우 EventHandler<TEventArgs> 제네릭 대리자를 사용하면 이벤트를 처리할 대리자 형식을 선언하지 않아도 됩니다. 예를 들어, EventArgs에서 파생된 MyEventArgs 클래스를 만들어 이벤트용으로 데이터를 보유한다고 가정합니다. 그런 다음 이벤트를 다음과 같이 선언할 수 있습니다.

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

참고 항목

개념

.NET Framework의 제네릭 개요

배열과 목록을 조작하기 위한 제네릭 대리자

제네릭 인터페이스

제네릭의 장점 및 제한 사항

참조

System.Collections.Generic

System.Collections.ObjectModel

기타 리소스

.NET Framework의 제네릭