Bucles y colecciones
Bucles:
Los bucles en C# son estructuras de control que permiten repetir un bloque de código varias veces. Los bucles son fundamentales para controlar el flujo de ejecución en un programa. Aquí tienes una descripción de los tipos de bucles más comunes en C# junto con ejemplos:
Bucle while:
El bucle
while
se ejecuta siempre que una condición sea verdadera. Es importante asegurarse de que la condición cambie en algún momento para evitar un bucle infinito.
Bucle do-while:
El bucle
do-while
es similar alwhile
, pero garantiza que el bloque de código se ejecute al menos una vez antes de verificar la condición.
Bucle for:
El bucle
for
es útil cuando se conoce de antemano la cantidad de iteraciones necesarias. Incluye una inicialización, una condición y una expresión de incremento.
💡 Ademas de hacerlo incremental se puede hacer decreciente!
Bucle foreach:
El bucle
foreach
se utiliza principalmente para iterar a través de elementos de una colección, como arrays o listas. (En un minuto vas a saber lo que es una lista o array)
Bucle break y continue:
Puedes usar la instrucción
break
para salir de un bucle antes de que se cumpla la condición ycontinue
para omitir la iteración actual y pasar a la siguiente.
Colecciones:
Las colecciones en C# son estructuras de datos que permiten almacenar y manipular conjuntos de elementos. Aquí tienes una descripción de los tipos de colecciones más comunes en C# junto con ejemplos:
Array[]
Un array es una colección de elementos del mismo tipo con un tamaño fijo que se declara en tiempo de compilación.
Declaración de un array:
Para declarar un array, puedes usar la siguiente sintaxis:
Inicialización de un array:
Puedes inicializar un array con valores en el momento de la declaración:
Acceso a elementos:
Para acceder a los elementos de un array, puedes utilizar el índice entre corchetes:
Longitud del array:
Puedes obtener la longitud de un array utilizando la propiedad
Length
:
Clonar un array:
Puedes crear una copia de un array utilizando el método
Clone()
:
Ordenar un array:
Puedes ordenar un array utilizando el método
Array.Sort()
:
Buscar un elemento en un array:
Puedes buscar un elemento en un array utilizando el método
Array.IndexOf()
:
Recorrer un array:
Puedes recorrer un array utilizando bucles como
for
oforeach
(como vimos en la seccion anterior.
Ten en cuenta que si necesitas agregar o quitar elementos de una colección de manera dinámica, es posible que desees considerar el uso de otras estructuras de datos como List<T>
en lugar de arrays, ya que las listas permiten operaciones más flexibles de inserción y eliminación de elementos.
List<>
Una lista es una colección dinámica que puede crecer o reducirse en tamaño según sea necesario.
Agregar elementos a una lista:
Puedes agregar elementos a una lista utilizando el método
Add()
:
Acceder a elementos de una lista:
Para acceder a los elementos de una lista, puedes utilizar el índice entre corchetes, al igual que con los arrays:
Sobrescribir elementos de una lista:
Puedes sobrescribir un elemento existente de una lista utilizando el índice:
Obtener la longitud de una lista:
Puedes obtener la cantidad de elementos en una lista utilizando la propiedad
Count
: (Cuidado que no es como el array donde se usaLength
)
Clonar una lista:
Puedes crear una copia de una lista utilizando el constructor de
List<T>
que toma otra lista como argumento:
Ordenar una lista:
Puedes ordenar una lista utilizando el método
Sort()
:
Buscar un elemento en una lista:
Puedes buscar un elemento en una lista utilizando el método
IndexOf()
:
Eliminar elementos de una lista:
Puedes eliminar elementos de una lista utilizando métodos como
Remove()
,RemoveAt()
, oRemoveAll()
:
Recorrer una lista:
Puedes recorrer una lista utilizando bucles como
for
oforeach
al igual que con el array.
Dictionary
****Los diccionarios en C# son una estructura de datos que almacena pares clave-valor, donde cada clave es única. Aquí tienes una descripción de las operaciones más comunes que puedes realizar con un Dictionary<TKey, TValue>
en C#, junto con ejemplos:
Declaración e inicialización de un diccionario:
Puedes declarar e inicializar un diccionario de la siguiente manera:
Agregar elementos a un diccionario:
Puedes agregar pares clave-valor a un diccionario utilizando el método
Add()
:
Acceder a valores de un diccionario:
Para acceder a los valores de un diccionario, puedes utilizar la clave como índice:
Ten en cuenta que si la clave no existe en el diccionario, esto generará una excepción KeyNotFoundException
. Para evitar esto, puedes utilizar el método TryGetValue()
:
Verificar si una clave existe en un diccionario:
Puedes verificar si una clave existe en un diccionario utilizando el método
ContainsKey()
:
Eliminar elementos de un diccionario:
Puedes eliminar elementos de un diccionario utilizando el método
Remove()
:
Limpiar un diccionario:
Puedes eliminar todos los elementos de un diccionario utilizando el método
Clear()
:
Obtener la cantidad de elementos en un diccionario:
Puedes obtener la cantidad de elementos en un diccionario utilizando la propiedad
Count
:
Recorrer un diccionario:
Puedes recorrer un diccionario utilizando un bucle
foreach
o acceder a sus claves o valores utilizando las propiedadesKeys
yValues
. Igual que con array y List pero teniendo en cuenta que manejas 2 valores.
Los diccionarios (Dictionary<TKey, TValue>
) son ideales cuando necesitas asociar valores con claves únicas y realizar búsquedas eficientes. Son una estructura de datos fundamental en la programación y se utilizan ampliamente en muchas aplicaciones.
Otras colecciones:
Si bien lo mas común es usar Array, List y Dictionary. Hay otros tipos de colecciones muy utiles y que tienen otros usos. No voy a profundizar en ellos ahora porque seria mucha data todo junto. Pero si es importante que los leas para saber que existes y si alguna vez tienes que hacer algo parecido puedas googlear como se usan y que hacen.
Tuple:
Una tupla es una colección ordenada de elementos de diferentes tipos. Se utiliza cuando se necesita una estructura de datos simple para almacenar valores relacionados. A diferencia del
Dictionary
la tupla puede guardar 2 keys o mas iguales. Porque no son key.
HashSet:
Un conjunto (HashSet) es una colección que almacena elementos únicos sin duplicados. Es útil cuando se necesita garantizar que no haya elementos repetidos. Es lo contrario a un
Dictionary
donde en vez de no poder tener 2 key iguales. No puedes tener 2 valores iguales.
Stack:
Una pila (Stack) es una colección que sigue el principio LIFO (último en entrar, primero en salir). Se utiliza para almacenar elementos que deben procesarse en orden inverso. Se puede usar tranquilamente en un maso de cartas. Porque la primera que agregues va a ser la ultima en salir.
Queue (Cola):
Una cola (Queue) es una colección que sigue el principio FIFO (primero en entrar, primero en salir). Se utiliza para almacenar elementos que deben procesarse en el orden en el que se agregaron, similar a una fila en la vida real. (Lo contrario al
Stack
)
En el ejemplo, los clientes se agregan a la cola en orden. Cuando se llama a Dequeue()
, se elimina y devuelve el primer cliente que llegó a la cola, que en este caso es "Cliente1". Esto garantiza que los elementos se manejen en el mismo orden en el que se agregaron, lo que es útil en situaciones en las que es importante mantener un orden específico, como la gestión de tareas o procesos en un sistema.
Last updated