AD

¿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 Udemy

Enlace de afiliado. No te cuesta nada extra.

🔷Lecciones de VB.NET
Lección 42 / 68

Aplanar una lista

En esta lección convertirás una lista con listas dentro en una lista plana.

Se recorre la lista y, cuando un elemento es a su vez una lista, se procesa recursivamente. TypeOf ... Is comprueba el tipo en tiempo de ejecución.

El código de ejemplo aplana una estructura con varios niveles.

El uso de List(Of Object) es lo que permite mezclar números y listas en la misma colección, y es también lo que obliga a comprobar el tipo de cada elemento. Es el precio de perder la información de tipos: el compilador ya no puede ayudar y los errores llegan al ejecutar.

Ese TypeOf x Is T es la forma de VB de preguntar por el tipo. Existe también x.GetType(), que devuelve el tipo exacto y no considera las clases derivadas — la diferencia importa cuando hay herencia de por medio.

Con listas de un solo nivel, LINQ ofrece SelectMany, que aplana en una expresión. Para estructuras arbitrariamente anidadas como la del ejemplo, la recursión sigue siendo la solución.

En código moderno se prefiere una colección con tipo concreto y una estructura conocida, precisamente para no tener que preguntar de qué tipo es cada cosa.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 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.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)