Tutorial de colecciones de C# con ejemplos
⚡ Resumen inteligente
En C#, las colecciones ofrecen una forma flexible de almacenar y gestionar grupos de objetos. A diferencia de los arrays, las colecciones crecen y se reducen en tiempo de ejecución, y los espacios de nombres System.Collections y System.Collections.Generic proporcionan tipos predefinidos para listas, diccionarios, pilas y colas.

En nuestro tutorial anterior, aprendimos cómo podemos usar matrices en C#. Echemos un vistazo rápido. Las matrices en programación se utilizan para agrupar un conjunto de objetos relacionados. Por lo tanto, se podría crear una matriz o un conjunto de números enteros, a los que se podría acceder mediante un nombre de variable.
¿Qué son las colecciones en C#?
Las colecciones son similares a Matrices, proporciona una forma más flexible de trabajar con un grupo de objetos.
En las matrices, habrás notado que necesitas definir la cantidad de elementos en una matriz de antemano. Esto debía hacerse cuando se declaró la matriz.
Pero en una colección, no es necesario definir el tamaño de la colección de antemano. Puede agregar elementos o incluso eliminar elementos de la colección en cualquier momento. Este capítulo se centrará en cómo podemos trabajar con las diferentes colecciones disponibles en C#.
Clases System.Colecciones
El .NET Framework agrupa las clases de colección originales no genéricas dentro del espacio de nombres System.Collections. La siguiente tabla resume los tipos principales que puede usar de inmediato.
| Colección | Mareas Ideales para Lecciones |
| Lista de arreglo | La colección ArrayList es similar a los Arrays. tipo de datos en C#. La mayor diferencia es la naturaleza dinámica de la colección de listas de matrices. |
| Apilar | La pila es una colección de casos especiales que representa un concepto de último en entrar, primero en salir (LIFO). |
| colas | La cola es una colección de casos especiales que representa un concepto de primero en entrar, primero en salir. |
| Tabla de picadillo | Una tabla hash es una colección especial que se utiliza para almacenar elementos clave-valor. |
| ListaOrdenada | SortedList es una colección que almacena pares clave-valor en orden ascendente de clave de forma predeterminada. |
| BitArray | Una matriz de bits es una matriz de estructura de datos que almacena bits. |
Colecciones genéricas en C#
Las clases no genéricas mencionadas anteriormente almacenan cada elemento como un objeto genérico, lo que significa que el compilador no puede verificar el tipo y el programa incurre en un pequeño costo al convertir los valores a un tipo específico. Para solucionar esto, C# agregó el espacio de nombres System.Collections.Generic, donde cada colección está vinculada a un tipo declarado.
Una colección genérica como Lista Solo acepta cadenas de texto, por lo que los errores se detectan en tiempo de compilación y no se requiere ninguna conversión de tipo al leer un elemento. Esto hace que las colecciones genéricas sean más seguras, rápidas y fáciles de leer, razón por la cual son la opción predeterminada en el código C# moderno.
Las colecciones genéricas más comunes se enumeran a continuación:
- Lista : Una lista redimensionable basada en índices, el reemplazo genérico de ArrayList.
- Diccionario : Almacena pares clave-valor con búsquedas rápidas basadas en hash.
- Conjunto de hashes : Solo admite valores únicos y operaciones de conjuntos como la unión.
- Cola : Una colección de tipo "primero en entrar, primero en salir", la versión genérica de Queue.
- Pila : Una colección de último en entrar, primero en salir, la versión genérica de Stack.
- Lista ordenada : Mantiene los pares clave-valor ordenados por clave en orden ascendente.
Ejemplo de colección de listas en C#
La lista es la colección genérica más utilizada porque se comporta como un array dinámico. El siguiente ejemplo crea una lista de cadenas, agrega y elimina elementos, lee su tamaño y luego imprime los valores restantes. Todo el código está escrito en el archivo Program.cs.
Paso 1) Importa el espacio de nombres System.Collections.Generic y declara una lista de cadenas.
Paso 2) Agregue elementos con el método Add y elimine uno con el método Remove.
Paso 3) Lee la propiedad Count y luego recorre la lista con una instrucción foreach.
using System; using System.Collections.Generic; namespace DemoApplication { class Program { static void Main(string[] args) { List<string> tutorials = new List<string>(); tutorials.Add("Java"); tutorials.Add("Python"); tutorials.Add("Kotlin"); tutorials.Remove("Python"); Console.WriteLine(tutorials.Count); foreach (string tutorial in tutorials) { Console.WriteLine(tutorial); } Console.ReadKey(); } } }
Code Explicación:-
- Se importa el espacio de nombres System.Collections.Generic para que el tipo List esté disponible para el programa.
- Una nueva lista Se crea un tutorial llamado y se agregan tres nombres con el método Add.
- El método Remove elimina el valor “Python”, lo que deja dos elementos en la lista.
- La propiedad Count devuelve el número de elementos, y el bucle foreach imprime cada valor restante en orden.
Cuando se ejecuta el programa, primero imprime el recuento de 2 (XNUMX %) Java y Kotlin en líneas separadas. Esto muestra cómo una colección cambia su tamaño en tiempo de ejecución, algo que una matriz fija no puede hacer.
Diferencia entre arrays y colecciones en C#
Ambos un matriz y una colección agrupan elementos relacionados bajo un mismo nombre, pero se comportan de manera diferente una vez que el programa está en ejecución. Saber cuándo usar cada uno te ayuda a escribir código más limpio y eficiente.
Las principales diferencias se enumeran a continuación:
- Tamaño: Un array tiene una longitud fija que se establece al declararlo, mientras que una colección puede crecer o encogerse en cualquier momento.
- Manejo de tipos: Un array almacena un único tipo, mientras que una colección puede ser segura en cuanto a tipos con genéricos o contener objetos de tipos mixtos cuando no es genérica.
- Ubicación: Los arrays están integrados en el lenguaje, mientras que las clases de colección residen en los espacios de nombres System.Collections y System.Collections.Generic.
- Operaciones integradas: Las colecciones ofrecen métodos ya preparados para agregar, eliminar, buscar y ordenar elementos, mientras que las matrices solo proporcionan un acceso indexado básico.
- Mejores use: Elija una matriz cuando se conozca y sea fijo el número de elementos, y una colección cuando el recuento cambie a medida que se ejecuta el programa.
En resumen, los arrays son la mejor opción para datos de tamaño fijo, mientras que las colecciones ofrecen la flexibilidad que necesitan la mayoría de las aplicaciones del mundo real.
