Colecciones genéricas en .NET Framework
Actualización: noviembre 2007
En este tema se proporciona una introducción a las clases de colección genéricas y otros tipos genéricos de .NET Framework.
Colecciones genéricas en .NET Framework
La biblioteca de clases de .NET Framework proporciona varias clases de colección genéricas en los espacios de nombres System.Collections.Generic y System.Collections.ObjectModel. Para obtener más información sobre estas clases, vea Tipos de colección utilizados normalmente.
System.Collections.Generic
Muchos de los tipos genéricos de la colección son análogos directos de tipos no genéricos. Dictionary<TKey, TValue> es una versión genérica de Hashtable; utiliza la estructura genérica KeyValuePair<TKey, TValue> para la enumeración en lugar de DictionaryEntry.
List<T> es una versión genérica de ArrayList. Hay clases Queue<T> y Stack<T> genéricas que se corresponden con las versiones no genéricas.
Hay versiones genéricas y no genéricas de SortedList<TKey, TValue>. Estas dos versiones son híbridos entre un diccionario y una lista. La clase genérica SortedDictionary<TKey, TValue> es un diccionario puro y no tiene ningún homólogo no genérico.
La clase genérica LinkedList<T> es una auténtica lista vinculada. No tiene ningún homólogo no genérico.
System.Collections.ObjectModel
La clase genérica Collection<T> proporciona una clase base de la que derivar sus propios tipos de colección genéricos. La clase ReadOnlyCollection<T> proporciona una manera sencilla de generar una colección de sólo lectura de cualquier tipo que implemente la interfaz genérica IList<T>. La clase genérica KeyedCollection<TKey, TItem> proporciona una manera de almacenar objetos que contienen sus propias claves.
Otros tipos genéricos
La estructura genérica Nullable<T> le permite utilizar tipos de valor como si se les pudiera asignar null. 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#, no es necesario utilizar explícitamente Nullable<T>, porque el lenguaje tiene sintaxis para tipos que aceptan valores null. |
La estructura genérica ArraySegment<T> 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 delegado genérico EventHandler<TEventArgs> elimina la necesidad de declarar un tipo de delegado para controlar los eventos si su evento sigue el modelo de control de eventos utilizado por .NET Framework. Por ejemplo, suponga ha creado una clase MyEventArgs, derivada de EventArgs, para contener los datos de su evento. A continuación puede declarar el evento de la siguiente forma:
Public Event MyEvent As EventHandler(Of MyEventArgs)
public event EventHandler<MyEventArgs> MyEvent;
public:
event EventHandler<MyEventArgs^>^ MyEvent;
Vea también
Conceptos
Información general sobre los genéricos de .NET Framework
Delegados genéricos para manipular matrices y listas
Ventajas y limitaciones de genéricos
Referencia
System.Collections.ObjectModel