Tipos de colección utilizados normalmente
Actualización: noviembre 2007
Los tipos de colecciones son las variaciones comunes de las recolecciones de datos, como tablas hash, colas, pilas, 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 esta interfaz. En colecciones basadas en la interfaz IList (como Array, ArrayList o List<T>) o directamente en la interfaz ICollection (como Queue, Stack o LinkedList<T>), cada elemento contiene sólo un valor. En colecciones basadas en la interfaz IDictionary (como las clases Hashtable y SortedList o las clases genéricas Dictionary<TKey, TValue> y SortedList<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.
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, consulte LINQ to Objects.
En esta secció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 las colecciones SortedList y SortedDictionary
Describe el diccionario ordenado y los tipos híbridos que combinan funcionalidad de diccionario y lista.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 HashSet<T> genérica.Operaciones HashSet y Set de LINQ
Describe las operaciones Set proporcionadas por el tipo de colección HashSet<T> y las operaciones Set de LINQ.
Referencia
System.Collections
Proporciona documentación de referencia del espacio de nombres System.Collections, que contiene interfaces y clases que definen diversas colecciones de objetos.System.Collections.Generic
Proporciona documentación de referencia del espacio de nombres System.Collections.Generic, que contiene interfaces y clases que definen colecciones genéricas.System.Collections.ICollection
Describe las características principales de la clase ICollection, que define tamaño, los enumeradores y los métodos de sincronización de todas las colecciones no genéricas.System.Collections.Generic.ICollection<T>
Describe las características principales de la clase ICollection<T>, que define los métodos para manipular las colecciones genéricas.System.Collections.IList
Describe las características principales de la clase IList, que representa una colección no genérica de objetos a los que puede obtener acceso individualmente mediante el índice.System.Collections.Generic.IList<T>
Describe las características principales de la clase IList<T>, que representa una colección de objetos a los que puede obtener acceso individualmente mediante el índice.System.Collections.IDictionary
Describe las características principales de la clase IDictionary, que representa una colección no genérica de pares de clave y valor.System.Collections.Generic.IDictionary<TKey, TValue>
Describe las características principales de la clase IDictionary<TKey, TValue>, que representa una colección genérica de pares de clave y valor.
Secciones relacionadas
Colecciones y estructuras de datos
Describe los diversos tipos de colecciones disponibles en .NET Framework, incluidas las pilas, colas, listas, matrices y estructuras.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.