Colecciones y estructuras de datos

Los datos estrechamente relacionados se pueden tratar con más eficacia si se agrupan en una colección. En lugar de escribir código independiente para tratar cada objeto individualmente, puede usar el mismo código para procesar todos los elementos de una colección.

Para administrar una colección, use la clase System.Array y las clases de los espacios de nombres System.Collections, System.Collections.Generic y System.Collections.Concurrent para agregar, quitar y modificar elementos individuales o intervalos de elementos de la colección. También se puede copiar una colección en otra.

Algunas clases System.Collections tienen capacidades de ordenación y la mayor parte están indizadas. La administración de la memoria se controla automáticamente y la capacidad de una colección se expande si es necesario. La sincronización proporciona seguridad para los subprocesos cuando se tiene acceso a los miembros de una colección. Algunas clases System.Collections pueden generar contenedores que hacen que la colección sea de solo lectura o que tenga un tamaño fijo. Cualquier clase System.Collections puede generar su propio enumerador que facilita la iteración por los elementos.

En .NET Framework versión 2.0, las clases de colección genéricas proporcionan una nueva funcionalidad y facilitan la creación de colecciones con establecimiento inflexible de tipos. Vea los espacios de nombres System.Collections.Generic y System.Collections.ObjectModel.

En .NET Framework versión 4, las colecciones del espacio de nombres System.Collections.Concurrent proporcionan operaciones eficaces y seguras para subprocesos con el fin de obtener acceso a los elementos de colección desde varios subprocesos.

La característica LINQ to Objects permite usar consultas LINQ para obtener acceso a los objetos en memoria mientras el tipo de objeto implemente la interfaz System.Collections.IEnumerable o System.Collections.Generic.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

Definir colecciones

Define los tipos de colección y explica las diferencias entre los tipos de colección genéricos y no genéricos de la biblioteca de clases de .NET Framework.

Tipos de colección utilizados normalmente

Describe los tipos de colección genéricos y no genéricos más utilizados, como System.Array, System.Collections.Generic.List<T> y System.Collections.Generic.Dictionary<TKey, TValue>.

Colecciones de bits

Describe los tipos de colección System.Collections.BitArray y System.Collections.Specialized.BitVector32.

Colecciones especializadas

Describe colecciones especiales, como System.Collections.Specialized.NameValueCollection, System.Collections.Specialized.StringDictionary y System.Collections.Specialized.StringCollection.

Colecciones seguras para subprocesos

Describe los tipos de colección, como System.Collections.Concurrent.BlockingCollection<T> y System.Collections.Concurrent.ConcurrentBag<T>, que admiten un acceso simultáneo seguro y eficaz desde varios subprocesos.

Crear y manipular colecciones

Describe cómo seleccionar el mejor tipo de colección, enumerar las colecciones, utilizar colecciones con varios subprocesos y ordenar las colecciones.

Cuándo utilizar colecciones genéricas

Describe el uso de los tipos de colección genéricos.

Referencia

System.Array

System.Collections

System.Collections.Concurrent

System.Collections.Generic

System.Collections.Specialized

System.Linq