¿Ya dominas lo básico? Un curso estructurado de C# es la vía rápida para dar el salto.
Ver cursos de C# en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (Console.WriteLine)
- 03Trabajar con variables
- 04Condicionales (la sentencia if)
- 05Repetir (la sentencia for)
- 06Escribir un método
- 07Trabajar con arrays
- 08Repetir (la sentencia while)
- 09Clases (programación orientada a objetos)
- 10Manejo de errores (try-catch)
- 11Ordenar un array
- 12Funciones recursivas
- 13Usar la biblioteca estándar
- 14La sentencia switch
- 15El operador ternario
- 16Herencia (extender una clase)
- 17Escribir comentarios
- 18Operadores lógicos (&&, ||, !)
- 19Constantes (const)
- 20Dividir y unir cadenas (Split, Join)
- 21Escribir código seguro frente a null (el operador ??)
- 22Buscar en un array (recorrerlo en un bucle)
- 23Transformar un array (LINQ Select)
- 24Arrays de dos dimensiones (datos en tabla)
- 25Escribir una clase de excepción propia
- 26Valores por defecto en los parámetros
- 27Trabajar con HashSet (conjuntos)
- 28Comprobar la corrección (tu primer paso hacia las pruebas)
- 29Funciones de orden superior (pasar una función como argumento)
- 30Pilas y colas (estructuras de datos básicas)
- 31Conversión de tipos (casting), lo básico
- 32Introducción a las expresiones regulares
- 33El algoritmo de búsqueda binaria
- 34Construir un cifrado César (desplazamiento de caracteres)
- 35Entender cómo funciona la ordenación de burbuja
- 36Construir y mostrar fechas
- 37Escribir varios casos de prueba juntos
- 38Acelerar cálculos con memoización (caché)
- 39Normalizar cadenas (Trim, unificar mayúsculas)
- 40Copia superficial y copia profunda
- 41Tipos enumerados (enum), lo básico
- 42Aplanar un array
- 43Invertir una cadena y comprobar si es palíndromo
- 44Emparejar dos arrays (la operación zip)
- 45Redondear números (Floor, Ceiling, Round)
- 46Cadenas de varias líneas (cadenas literales)
- 47Métodos que devuelven varios valores (tuplas)
- 48Calcular el MCD y el MCM (algoritmo de Euclides)
- 49Dar formato a números (rellenar dígitos, decimales)
- 50Limpieza con try/catch/finally
- 51Escribir métodos genéricos
- 52Leer y escribir archivos, lo básico
- 53Generar números aleatorios
- 54Operadores a nivel de bit (AND, OR, XOR, desplazamientos)
- 55Leer argumentos de la línea de órdenes
- 56Esperar un tiempo fijo (Thread.Sleep)
- 57Cuidado con los errores de redondeo en coma flotante
- 58Leer de la entrada estándar
- 59FizzBuzz (el ejercicio clásico)
- 60Comprobar si un número es primo
- 61Operaciones de conjunto con HashSet (unión, intersección, diferencia)
- 62Convertir entre bases (binario, hexadecimal)
- 63Comprobar paréntesis equilibrados (aplicación de pilas)
- 64Comprobar si dos palabras son anagramas
- 65Comprobar si un año es bisiesto
- 66Convertir temperaturas (Celsius a Fahrenheit)
- 67Descomposición en factores primos
- 68[Aplicado] Construye una herramienta de inventario
Transformar un array (LINQ Select)
En esta lección crearás una secuencia nueva aplicando un cálculo a cada elemento.
Select() es el «map» de LINQ: transforma cada elemento. Where() filtra, y ToArray() o ToList() materializan el resultado.
El código de ejemplo duplica cada valor de un array.
Y aquí está la característica de LINQ que más sorprende: la evaluación diferida. Select() no calcula nada al escribirlo; solo se ejecuta cuando alguien recorre el resultado. Si la fuente cambia entre medias, el resultado cambia. Y si recorres la misma consulta dos veces, se calcula dos veces.
Por eso la costumbre es cerrar con ToList() cuando vas a usar el resultado más de una vez o cuando la fuente puede cambiar. Es la diferencia entre un programa que va bien y uno que repite el mismo trabajo sin que se note.
🧪 Este sitio no puede compilar ni ejecutar C# directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
🔗 El mismo tema en otros lenguajes
Mira cómo se escribe lo mismo en otro lenguaje.
