Tipos de colección utilizados normalmente

Los tipos de colección representan diferentes formas de recopilar datos, como tablas hash, colas, pilas, bolsas, diccionarios y listas.

Todas las colecciones se basan en las interfaces ICollection o ICollection<T>, ya sea de forma directa o indirecta. IList y IDictionary y sus homólogos genéricos derivan de estas dos interfaces.

En las colecciones basadas en IList o directamente en ICollection, cada elemento contiene solo un valor. Estos tipos incluyen:

En las colecciones basadas en la interfaz IDictionary, cada elemento contiene una clave y un valor. Estos tipos incluyen:

La clase KeyedCollection<TKey,TItem> es única porque es una lista de valores con claves insertadas dentro de los valores. Como resultado, se comporta como una lista y como un diccionario.

Cuando se necesita un acceso eficaz a una colección multiproceso, utilice las colecciones genéricas del espacio de nombres System.Collections.Concurrent.

Las clases Queue y Queue<T> proporcionan listas de primeras entradas, primeras salidas. Las clases Stack y Stack<T> proporcionan listas de últimas entradas, últimas salidas.

Tipado fuerte

Las colecciones genéricas son la mejor solución para elementos fuertemente tipados. Por ejemplo, agregar un elemento de cualquier tipo que no sea de una colección Int32 a List<Int32> produce un error en tiempo de compilación. Sin embargo, si su lenguaje no admite genéricos, el espacio de nombres System.Collections incluye clases base abstractas que se pueden extender para crear clases de colección fuertemente tipadas. Estas clases base incluyen:

Variación de las colecciones

Las colecciones varían en cómo almacenan, ordenan y comparan elementos y cómo realizan búsquedas.

La clase SortedList y la clase genérica SortedList<TKey,TValue> proporcionan versiones ordenadas de la clase Hashtable y de la clase genérica Dictionary<TKey,TValue>.

Todas las colecciones usan índices de base cero, excepto Array, que permite matrices que no son de base cero.

Se puede acceder a los elementos de SortedList o KeyedCollection<TKey,TItem> mediante la clave o el índice del elemento. Solo se puede acceder a los elementos de Hashtable o Dictionary<TKey,TValue> mediante la clave del elemento.

Uso de LINQ con tipos de colección

La característica LINQ to Objects proporciona un patrón común para acceder a objetos en memoria de cualquier tipo que implemente IEnumerable o IEnumerable<T>. Las consultas LINQ tienen varias ventajas sobre construcciones estándar como los bucles foreach:

  • Son concisas y fáciles de entender.
  • Pueden filtrar, ordenar y agrupar datos.
  • Pueden mejorar el rendimiento.

Para más información, vea LINQ to Objects (C#), LINQ to Objects (Visual Basic) y Parallel LINQ (PLINQ).

Title Descripción
Colecciones y estructuras de datos Se describen los diversos tipos de colecciones disponibles en .NET, como las pilas, las colas, las listas, las matrices y los diccionarios.
Tipos de las colecciones Hashtable y Dictionary Describe las características de los tipos de diccionario basado en hash genéricos y no genéricos.
Tipos de colecciones ordenadas Describe las clases que proporcionan funcionalidad de ordenación para las listas y los conjuntos.
Genéricos Se describe la característica de los genéricos proporcionados por .NET, incluidos los delegados, las colecciones y las interfaces genéricas. Proporciona vínculos a la documentación de características para C#, Visual Basic y Visual C++, así como a tecnologías de apoyo como la reflexión.

Referencia

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>