Compartir a través de


Tipos de colección utilizados normalmente

Los tipos de colección son las variaciones comunes de las recolecciones de datos, como tablas hash, colas, pilas, bolsas, diccionarios y listas.

Las colecciones se basan en las interfaces ICollection, IList e IDictionary o en sus homólogos genéricos. Las interfaces IList e IDictionary derivan de la interfaz ICollection; por consiguiente, todas las colecciones se basan directa o indirectamente en la interfaz ICollection. En las colecciones basadas en la interfaz IList (por ejemplo, Array, ArrayList o List<T>) o directamente en la interfaz ICollection (por ejemplo, Queue, ConcurrentQueue<T>, Stack, ConcurrentStack<T> o LinkedList<T>), cada elemento contiene solo un valor. En las colecciones basadas en la interfaz IDictionary (por ejemplo, las clases Hashtable y SortedList, las clases genéricas Dictionary<TKey, TValue> y SortedList<TKey, TValue>), o en las clases ConcurrentDictionary<TKey, TValue>, cada elemento contiene una clave y un valor. La clase KeyedCollection<TKey, TItem> es única porque se compone de una lista de valores con claves incrustadas, de modo que se comporta como una lista y como un diccionario.

Las colecciones genéricas son la mejor solución al establecimiento inflexible de tipos. No obstante, en caso de que el lenguaje en cuestión no admita genéricos, debe observarse que el espacio de nombres System.Collections incluye colecciones base, como CollectionBase, ReadOnlyCollectionBase o DictionaryBase, que son clases base abstractas que pueden extenderse para crear clases de colección con establecimiento inflexible de tipos. Cuando se requiere el acceso multiproceso a las colecciones, se deben usar las colecciones genéricas del espacio de nombres System.Collections.Concurrent.

Las colecciones pueden variar en función de cómo se almacenen los elementos, cómo se ordenen, cómo se realicen en ellas las búsquedas y cómo se efectúen las comparaciones. La clase Queue y la clase genérica Queue<T> proporcionan las listas de tipo "primero en entrar, primero en salir", mientras la clase Stack y la clase Stack<T> genérica proporcionan las listas de tipo "último en entrar, primero en salir". 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>. Sólo se puede obtener acceso a los elementos de Hashtable o Dictionary<TKey, TValue> mediante su clave, mientras que a los elementos de SortedList o KeyedCollection<TKey, TItem> se puede obtener acceso tanto mediante la clave como mediante el índice. Los índices de todas las colecciones son de base cero, con una excepción, Array, que permite matrices que no sean de base cero.

La característica LINQ to Objects le permite usar consultas LINQ para tener acceso a los objetos en memoria mientras el tipo de objeto implemente IEnumerable o IEnumerable<T>. Las consultas LINQ proporcionan un modelo común para el acceso a datos; suelen ser más concisas y legibles que los bucles foreach estándar, y proporcionan capacidades de filtrado, ordenación y agrupación. Las consultas LINQ también pueden mejorar el rendimiento. Para obtener más información, vea LINQ to Objects y Parallel LINQ (PLINQ).

Temas relacionados

Título

Descripción

Tipo de colección Array

Describe las características que permiten considerar a las matrices como colecciones.

Tipos de las colecciones ArrayList y List

Describe las características de las listas genéricas y no genéricas, que constituyen los tipos de colecciones más utilizados.

Tipos de las colecciones Hashtable y Dictionary

Describe las características de los tipos de diccionarios basados 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.

Tipos de la colección Queue

Describe las características de las colas genéricas y no genéricas.

Tipos de la colección Stack

Describe las características de las pilas genéricas y no genéricas.

Tipo de colección HashSet

Describe el tipo de colección System.Collections.Generic.HashSet<T> genérica.

Operaciones HashSet y Set de LINQ

Describe las operaciones Set proporcionadas por el tipo de colección System.Collections.Generic.HashSet<T> y las operaciones Set de LINQ.

Colecciones y estructuras de datos

Describe los diversos tipos de colecciones disponibles en .NET Framework, incluidas las pilas, colas, listas, matrices y structs.

Genéricos en .NET Framework

Describe la característica de genéricos, incluidas las colecciones, delegados e interfaces genéricos proporcionados por .NET Framework. Proporciona vínculos a la documentación sobre características para C#, Visual Basic y Visual C++, así como a las 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>