¿Ya dominas lo básico? Un curso estructurado de VB.NET es la vía rápida para dar el salto.
Ver cursos de VB.NET en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (Console.WriteLine)
- 03Usar variables
- 04Condicionales (la sentencia If)
- 05Repetir con bucles (For)
- 06Escribir una función (un procedimiento)
- 07Trabajar con arrays
- 08Repetir con While
- 09Clases (programación orientada a objetos)
- 10Gestión de errores (Try...Catch)
- 11Ordenar un array
- 12Funciones recursivas
- 13Usar la biblioteca estándar
- 14La sentencia Select Case
- 15Expresiones condicionales (el operador If)
- 16Herencia (extender una clase)
- 17Escribir comentarios
- 18Operadores lógicos (AndAlso, OrElse, Not)
- 19Constantes (Const)
- 20Partir y unir cadenas (Split y Join)
- 21Escribir código a prueba de Nothing
- 22Buscar en un array (Array.IndexOf)
- 23Transformar un array
- 24Arrays bidimensionales (datos en forma de tabla)
- 25Crear tu propia clase de excepción
- 26Argumentos con valor por defecto (Optional)
- 27Trabajar con HashSet (conjuntos)
- 28Comprobar que el código es correcto (primer paso hacia las pruebas)
- 29Funciones de orden superior
- 30Pilas y colas (estructuras de datos básicas)
- 31Conversión de tipos
- 32Introducción a las expresiones regulares
- 33El algoritmo de búsqueda binaria
- 34Construir un cifrado César
- 35Entender cómo funciona la ordenación de burbuja
- 36Construir y mostrar una fecha
- 37Escribir varias pruebas juntas
- 38Acelerar cálculos con memoización
- 39Normalizar cadenas (Trim y mayúsculas)
- 40Copia superficial y copia profunda
- 41Enumeraciones básicas
- 42Aplanar una lista
- 43Invertir una cadena y detectar palíndromos
- 44Emparejar dos arrays (la operación zip)
- 45Redondear números (Floor, Ceiling, Round)
- 46Texto de varias líneas (componerlo con vbCrLf)
- 47Devolver varios valores (tuplas)
- 48Calcular el MCD y el MCM
- 49Dar formato a los números
- 50Limpieza con Try / Catch / Finally
- 51Funciones generales con genéricos
- 52Leer y escribir archivos
- 53Generar números aleatorios
- 54Operaciones a nivel de bits
- 55Recibir argumentos de la línea de órdenes
- 56Esperar un tiempo determinado (Thread.Sleep)
- 57Cuidado con los errores de la coma flotante
- 58Leer un valor de la entrada estándar
- 59FizzBuzz (el ejercicio clásico)
- 60Comprobar si un número es primo
- 61Operaciones de conjuntos con HashSet
- 62Convertir entre bases (binario y hexadecimal)
- 63Comprobar el equilibrio de los paréntesis
- 64Comprobar si dos palabras son anagramas
- 65Comprobar si un año es bisiesto
- 66Convertir temperaturas
- 67Descomponer en factores primos
- 68[Aplicado] Un pequeño gestor de inventario
Operaciones de conjuntos con HashSet
En esta lección combinarás dos conjuntos de las tres formas clásicas.
UnionWith reúne todo, IntersectWith deja lo común y ExceptWith quita del primero lo que está en el segundo.
El código de ejemplo aplica las tres a dos conjuntos que se solapan.
Fíjate en la terminación With de los tres nombres: indica que modifican el conjunto sobre el que se llaman en lugar de devolver uno nuevo. Por eso hay que trabajar sobre copias si vas a hacer varias operaciones — sin copiar, la primera destruiría el original y las siguientes darían resultados equivocados sin ningún error.
Esa convención de nombres es útil una vez que se reconoce: un método que termina en With tiene efecto sobre el objeto.
Con LINQ existen las versiones que devuelven una secuencia nueva —Union, Intersect, Except, sin With— y son las que se usan cuando no se quiere tocar los datos de partida. Funcionan sobre cualquier colección, no solo sobre conjuntos.
Ten presente que la diferencia no es simétrica: quitar B de A no es lo mismo que quitar A de B.
🧪 Este sitio no puede compilar ni ejecutar VB.NET 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.
