Simulando la inicialización de colecciones de Visual Basic 10 con Visual Basic 9
A colación de una entrada de Bruno acerca de la nueva característica de Visual Studio 10 y en concreto de Visual Basic 10 donde podemos inicializar colecciones tipadas con Visual Basic 10, me surgió la duda casi de inmediato de si en Visual Basic 9 podríamos simular este mismo mecanismo.
La respuesta es sí.
Lo que ocurre, es que la forma en la que lo hace Visual Basic 10 es más limpia y nos ahorra el escribir líneas de código, aunque con Visual Basic 9, tampoco es que tengamos que escribir muchas más líneas de código, tan solo una conversión por medio.
El ejemplo que nos proponía Bruno, partía del ejemplo básico y cuyo código sería el siguiente:
listNames.Add(«Juan»)
listNames.Add(«Jose»)
listNames.Add(«Valentino»)
Respecto a la novedad incluida en Visual Basic 10, el código anterior se podría simplificar por este otro:
Pero… ¿cómo podríamos hacer esto mismo con Visual Basic 9?… porque en realidad se puede hacer.
La equivalencia en Visual Basic 9 pasa en este ejemplo por utilizar LINQ.
El código equivalente de Visual Basic 9 ó Visual Basic 2008 a la nueva característica de Visual Basic 10 sería el siguiente:
Dim listNames As List(Of String) = (From persona In personas _
Select persona).ToList
Finalmente, para consumir el contenido, podría servir esta pequeña instrucción:
For Each elemento In listNames
elementos &= elemento & Environment.NewLine
Next
MessageBox.Show(elementos)
Como podemos ver en este ejemplo/demostración, a veces podemos «simular» alguno de los comportamientos o características nuevas que se incorporarán posiblemente a la versión final de Visual Basic 10.
Es… otra forma de hacer las cosas, ni mejor ni pero, sino simplemente otra forma diferente.
Espero que ayude.
2 Responsesso far
Pero en VB9 ya hay una forma resumida de inicializar listas …
Dim lst As New List(Of String)(New String() {«T1», «T2», «T3»})
Así que no entieno mucho las razones que tiene MS para implementar esa otra manera de hacerlo, pero bueno, ahí esta para el que la prefiera 🙂
Hola Peni,
totalmente de acuerdo con tu otra forma de hacerlo.
Como decía, la que presenté es una forma de hacerlo, y esta que tú comentas es otra.
La verdad es que casi siempre tenemos más de una forma de hacer las cosas, y a veces salen nuevas formas de hacer esas mismas cosas que pueden desconcertar.
¡Gracias por compartirlo!