Compartir a través de


Seleccionar una clase de colección

Actualización: noviembre 2007

Es importante elegir cuidadosamente la clase System.Collections. La utilización de un tipo equivocado podría limitar el uso de la colección.

Considere las siguientes cuestiones:

  • ¿Necesita una lista secuencial en la que normalmente se descarta el elemento tras recuperar su valor?

    • Si la respuesta es sí, considere la posibilidad de utilizar la clase Queue o la clase genérica Queue<T> en caso de que necesite un comportamiento de tipo FIFO ("primero en entrar, primero en salir"). Considere la posibilidad de utilizar la clase Stack o la clase genérica Stack<T> en caso de que necesite un comportamiento de tipo LIFO ("último en entrar, primero en salir").

    • Si la respuesta es no, considere el uso de las demás colecciones.

  • ¿Necesita obtener acceso a los elementos en cierto orden, como FIFO, LIFO o aleatoriamente?

    • La clase Queue y la clase genérica Queue<T> proporcionan un acceso de tipo FIFO.

    • La clase Stack y la clase genérica Stack<T> proporcionan un acceso de tipo LIFO.

    • La clase genérica LinkedList<T> permite un acceso secuencial, tanto desde el encabezado hasta el final como desde el final hasta el encabezado.

    • El resto de las colecciones ofrecen acceso aleatorio.

  • ¿Necesita tener acceso a cada elemento por el índice?

  • ¿Cada elemento contendrá un valor, una combinación de una clave y un valor, o una combinación de una clave y varios valores?

  • ¿Necesita ordenar los elementos de forma diferente a como se introdujeron?

  • ¿Necesita buscar y recuperar la información rápidamente?

  • ¿Necesita colecciones que acepten sólo cadenas?

LINQ to Objects

LINQ to Objects permite a los programadores usar consultas LINQ para tener acceso a los objetos en memoria mientras el tipo de objeto implementa 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. Además, las consultas LINQ pueden producir también un incremento del rendimiento. Para obtener más información, vea LINQ to Objects.

Vea también

Referencia

System.Collections

System.Collections.Specialized

System.Collections.Generic

Otros recursos

Crear y manipular colecciones