Usar colecciones para administrar varios objetos
Actualización: noviembre 2007
En esta lección, aprenderá a utilizar una colección para administrar grupos de objetos.
En una lección anterior, aprendió a utilizar matrices para administrar grupos de variables. Aunque las matrices también se utilizan para administrar grupos de objetos, Visual Basic tiene un tipo de objeto especial denominado colección, el cual se puede usar para almacenar y recuperar grupos de objetos similares.
Al igual que una matriz, cada elemento de un objeto Collection tiene un índice que se puede utilizar para identificar dicho elemento. Además, cada elemento de un objeto Collection tiene una clave, un valor String que se puede utilizar para identificar el elemento. La ventaja de utilizar una clave es que no necesita recordar el índice de un elemento; en su lugar, puede referirse a él a través de un nombre significativo.
Crear una colección
Las colecciones son útiles cuando el programa utiliza varias instancias de la misma clase. Por ejemplo, examine la clase Players que creó en una lección anterior. Es probable que necesite varios objetos Players para representar un equipo de béisbol.
El primer paso para crear una colección es crear una instancia de un objeto Collection, tal como se muestra en la siguiente declaración.
Dim baseballTeam As New Collection
Cuando se crea el objeto Collection, se puede utilizar el método Add para agregarle elementos y el método Remove para eliminarlos. Cuando agregue elementos, primero especifique el elemento que se va a agregar y luego el valor String que se va a utilizar como clave.
baseballTeam.Add(playerObject, "Player's Name")
Al quitar un elemento, utilice la clave para especificar el elemento que se va a quitar.
baseballTeam.Remove("Player's Name")
En el siguiente procedimiento, se agregarán dos nuevos objetos Players y, a continuación, se creará una colección team y se le agregarán los objetos Players, mediante la propiedad Position como una clave.
Inténtelo
Para crear una colección de objetos
Abra el proyecto Persons que creó en la lección anterior. Si no lo guardó, vuelva a la lección anterior, Generar una clase a partir de una clase existente: utilización de la herencia, y finalice los procedimientos.
En el Explorador de soluciones, en el proyecto PlayerTest, seleccione el nodo Form1.vb y en el menú Ver, seleccione Código.
En el Editor de código, agregue lo siguiente a la sección de declaraciones (debajo de la declaración para player2).
Dim player3 As New Persons.Players Dim player4 As New Persons.Players Dim team As New Collection
Agregue el siguiente código al procedimiento de evento Form1_Load.
With player3 .FirstName = "Eduardo" .LastName = "Saavedra" .Number = 52 .Position = "First Base" End With With player4 .FirstName = "Karl" .LastName = "Jablonski" .Number = 22 .Position = "Pitcher" End With team.Add(player1, player1.Position) team.Add(player2, player2.Position) team.Add(player3, player3.Position) team.Add(player4, player4.Position)
En el Explorador de soluciones, en el proyecto PlayerTest, seleccione el nodo Form1.vb. A continuación, en el menú Ver, elija Diseñador.
En el Cuadro de herramientas, arrastre un control ComboBox hasta el formulario.
En la ventana Propiedades, seleccione la propiedad Items y haga clic en el botón ....
En el Editor de la colección de cadenas, escriba lo siguiente y haga clic en Aceptar.
Catcher
First Base
Pitcher
Shortstop
Haga doble clic en el control ComboBox para abrir el Editor de código y escriba el siguiente código en el controlador de eventos ComboBox1_SelectedIndexChanged.
Dim SelectedPlayer As Persons.Players SelectedPlayer = team(ComboBox1.SelectedItem) MsgBox("Playing " & ComboBox1.SelectedItem & " is " & _ SelectedPlayer.FullName & "!")
Presione F5 para ejecutar el programa. Seleccione una posición de la lista desplegable, aparecerá en un cuadro de mensaje el jugador para esa posición.
Pasos siguientes
En esta lección, aprendió a utilizar un objeto Collection para administrar un grupo de objetos. En este momento, puede aprender más sobre las colecciones en Información detallada: utilizar un bucle For Each...Next en una colección o puede continuar con el siguiente grupo de lecciones y aprender a crear sus propios controles.
Siguiente lección: Objetos visibles: crear el primer control de usuario
Vea también
Tareas
Información detallada: utilizar un bucle For Each...Next en una colección
Información detallada: reemplazar miembros
Generar una clase a partir de una clase existente: utilización de la herencia
Conceptos
Clase de colección de Visual Basic