Compartir a través de


Colecciones genéricas en .NET

La biblioteca de clases de .NET proporciona una serie de clases genéricas de colección en los espacios de nombres System.Collections.Generic y System.Collections.ObjectModel. Para obtener información más detallada sobre estas clases, vea Tipos de colección usados habitualmente.

System.Collections.Generic

Muchos de los tipos de colección genéricos son análogos directos de tipos no genéricos. Dictionary<TKey,TValue> es una versión genérica de Hashtable; usa la estructura KeyValuePair<TKey,TValue> genérica para la enumeración en lugar de DictionaryEntry.

List<T> es una versión genérica de ArrayList. Hay clases genéricas Queue<T> y Stack<T> que corresponden a las versiones no genéricas.

Hay versiones genéricas y no genéricas de SortedList<TKey,TValue>. Ambas versiones son híbridos de un diccionario y una lista. La SortedDictionary<TKey,TValue> clase genérica es un diccionario puro y no tiene ningún homólogo no genérico.

La LinkedList<T> clase genérica es una lista vinculada verdadera. No tiene ningún homólogo no genérico.

System.Collections.ObjectModel

La Collection<T> clase genérica proporciona una clase base para derivar sus propios tipos de colección genéricos. La ReadOnlyCollection<T> clase proporciona una manera sencilla de generar una colección de solo lectura a partir de cualquier tipo que implemente la IList<T> interfaz genérica. La KeyedCollection<TKey,TItem> clase genérica proporciona una manera de almacenar objetos que contienen sus propias claves.

Otros tipos genéricos

La Nullable<T> estructura genérica te permite usar tipos de valor como si pudieran null asignarse. Esto puede ser útil al trabajar con consultas de base de datos, donde pueden faltar campos que contienen tipos de valor. El parámetro de tipo genérico puede ser cualquier tipo de valor.

Nota:

En C# y Visual Basic, no es necesario usar Nullable<T> explícitamente porque el lenguaje tiene sintaxis para tipos que aceptan valores NULL. Consulte Tipos de valor que aceptan valores NULL (referencia de C#) y Tipos de valor que aceptan valores NULL (Visual Basic).

La ArraySegment<T> estructura genérica proporciona una manera de delimitar un intervalo de elementos dentro de una matriz unidimensional basada en cero de cualquier tipo. El parámetro de tipo genérico es el tipo de los elementos de la matriz.

El EventHandler<TEventArgs> delegado genérico elimina la necesidad de declarar un tipo de delegado para controlar eventos, si el evento sigue el patrón de control de eventos usado por .NET. Por ejemplo, supongamos que ha creado una MyEventArgs clase, derivada de EventArgs, para contener los datos del evento. A continuación, puede declarar el evento de la siguiente manera:

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

Consulte también