Compartir a través de


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 directa o indirectamente. IList y IDictionary y sus homólogos genéricos derivan todos de estas dos interfaces.

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

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

La KeyedCollection<TKey,TItem> clase es única porque es una lista de valores con claves incrustadas 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 tipo primero en entrar, primero en salir. 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 escribir de forma segura. Por ejemplo, agregar un elemento de cualquier tipo distinto de un Int32 a una colección 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:

Cómo varían las colecciones

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

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

Todas las colecciones usan índices de base cero, excepto Array, que permite matrices que no están basadas en cero.

Puede acceder a los elementos de un SortedList o de un KeyedCollection<TKey,TItem> mediante la clave o el índice del elemento. Solo puede acceder a los elementos de un Hashtable o un 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 foreach bucles:

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

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

Título Descripción
Colecciones y estructuras de datos Describe los distintos tipos de colección disponibles en .NET, incluidas 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 genéricos y no genéricos basados en hash.
Tipos de colección ordenados Describe las clases que proporcionan funcionalidad de ordenación para listas y conjuntos.
Genéricos Describe la característica de genéricos, incluidas las colecciones genéricas, los delegados y las interfaces proporcionadas por .NET. Proporciona vínculos a la documentación de características de C#, Visual Basic y Visual C++, y a tecnologías compatibles, 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>