ProgramaciónDesarrollador VB.NET

¿Cómo se implementan los arreglos y colecciones en Visual Basic? Compara los arreglos estándar, Collection, ArrayList y List(Of T) en cuanto a sus capacidades y aplicaciones.

Supere entrevistas con el asistente de IA Hintsage

Respuesta.

En Visual Basic existen varias formas de organizar conjuntos de datos:

  • Arreglos estándar (Dim arr(10) As Integer): tamaño estático, acceso rápido por índice, no se puede expandir dinámicamente.

  • Collection (colección de objetos): tamaño dinámico, puede almacenar elementos de cualquier tipo (pero sin tipado estricto), acceso por clave e índice, soporta For Each.

  • ArrayList (en VB.NET): colección obsoleta, almacena objetos del tipo Object, no soporta genéricos (Generic), requiere conversiones de tipo (casting).

  • List(Of T) (en VB.NET): colección tipada, tamaño dinámico, acceso rápido, soporta LINQ, segura por tipo de datos.

Ejemplos de uso:

Arreglo estándar:

Dim numbers(4) As Integer numbers(0) = 10

Collection:

Dim coll As New Collection() coll.Add("manzana") coll.Add(123) For Each item In coll Debug.Print(item) Next

ArrayList:

Dim arrList As New ArrayList() arrList.Add("abc") arrList.Add(123)

List(Of T):

Dim list As New List(Of Integer)() list.Add(10) list.Add(20) For Each num As Integer In list Console.WriteLine(num) Next

Pregunta capciosa.

¿Cuál es el principal problema que puede surgir al trabajar con ArrayList en comparación con List(Of T)?

Respuesta: ArrayList almacena elementos como Object, por lo que se requiere una conversión de tipo explícita (casting) al acceder a los elementos, lo que aumenta la posibilidad de recibir un InvalidCastException en tiempo de ejecución. List(Of T) proporciona tipado estricto en el momento de la compilación, excluyendo tales errores.

Dim arrList As New ArrayList() arrList.Add(100) ' Dim s As String = arrList(0) ' Error en tiempo de ejecución Dim n As Integer = CType(arrList(0), Integer) ' OK

Ejemplos de errores reales debido al desconocimiento de las sutilezas del tema.


Historia

En el sistema financiero se utilizaban activamente los arreglos estándar para almacenar datos de tamaño dinámico. Al superar el tamaño previamente asignado, los arreglos "se recortaban", lo que resultaba en la pérdida de transacciones durante picos de carga.


Historia

Al trabajar con ArrayList se añadieron cadenas y números a la colección, y luego se intentó calcular la suma de los elementos. Como resultado, la aplicación falló con una excepción durante la conversión de tipo, ya que no se pueden sumar cadenas con números.


Historia

Se utilizó Collection para almacenar clases de pedidos, pero no se verificaron los tipos de los elementos. En un módulo se agregó por error texto en lugar de un objeto de pedido, lo que causó un fallo en toda la lógica de negocio al intentar invocar métodos de un objeto inexistente.