Unidad 32. Colecciones en VB (II)





32.4. Recorrido.

La forma de recorrerla es creando una estructura repetitiva, esta estructura va a depender en cierta medida del tipo de colección creada, pero veamos dos formas de hacerlo.

 

  Sub Main()

  Dim Coleccion As New System.Collections.Generic.List(Of Datos)

  Dim Item As New Datos

 

  Item.Nombre = "Silla”

  Coleccion.Add(Item)

 

  Item = New Datos()

  Item.Nombre = "Naranja”

  Coleccion.Add(Item)

 

  Dim x As Integer = 0

  While x < Coleccion.Count

  Console.WriteLine(Coleccion.Item(x).Nombre)

  x = x + 1

  End While

  Console.ReadLine()

  End Sub

 

Y en este caso utilizando el bucle del tipo For each, que suele ser válido para casi todas.

 

  Dim Dato As Datos

  For Each Dato In Coleccion

  Console.WriteLine(Dato.Nombre)

  Next

 

El primer ejemplo es fácil de entender, hemos creado un bucle en el que progresamos desde x igual a cero hasta el número de elementos que tiene la colección.

El segundo ejemplo se basa en que el bucle For each es un bucle especializado en esta tarea y solo hay que darle el tipo de dato a leer en la colección a la que pertenece.

En las colecciones donde se utiliza clave y valor, el recorrido es de esta forma.

 

  Dim Coleccion As New System.Collections.Generic.SortedList(Of Integer, String)

  Coleccion.Add(1, "Silla")

  Coleccion.Add(2, "Mesa")

  Coleccion.Add(3, "Puerta")

 

  ' PV es una Pareja de Valores

  ' PV es del tipo KeyValuePair(Of Integer, String)

  For Each PV As KeyValuePair(Of Integer, String) In Coleccion

  Console.WriteLine("Clave = {0}, Valor = {1}", PV.Key, PV.Value)

  Next 

 

Hay que ser consecuente con la declaración de la colección.

 

Dim Coleccion As New System.Collections.Generic.SortedList(Of Integer, String)

 

Para después utilizar el objeto PV con la declaración adecuada, (Of Integer, String)

 

32.5. Operaciones con una colección.

Una vez que disponemos de una colección, además de la acción de añadir elementos y recuperar elementos de la colección, podemos quitar elementos , comparar elementos.

1    Métodos principales.

Add Añade un elemento a la colección

Clear   Limpia, vacía el contenido de  la colección.

Clone Obtiene una copia de la colección actual.

Contains Determina si el elemento de referencia existe en la colección

CopyTo   Realiza una copia del contenido de la matriz sobre un array.

Equals Determina si el objeto de referencia es igual al objeto actual.

Find Busca un elemento en la colección.

GetRange Devuelve un array que es un subconjunto de la colección

IndexOf   Devuelve la posición de la primera aparición del objeto de referencia en la colección.

Insert   Inserta un elemento en la colección

InsertRange   Inserta los elementos especificados en la posición indicada.

LastIndexOf   Devuelve la última posición de la primera aparición del objeto de referencia en la colección.

Remove Quita la primera aparición del elemento especificado.

RemoveAt   Quita el elemento de la posición especificada.

RemoveRange  Quita los elementos del rango especificado

SetRange Copia el rango especificado en un array

Sort Clasifica la colección.

ToArray   Copia la colección en un array.

2    Adición, add.

Hemos visto como se usa el método  add,

 

 Coleccion.Add(Item)

 

Pero hay que tener presente que hay varios tipos de colecciones, y el método Add puede cambiar según el tipo de la misma, he aquí un ejemplo.

 

  Dim Coleccion As New System.Collections.SortedList

 

  Coleccion.Add(1, "Silla")

  Coleccion.Add(2, "Mesa")

  Coleccion.Add(3, "Puerta")

 

  Console.WriteLine(Coleccion.ContainsValue("Silla"))

 

O bien esta otra.

 

  Dim Coleccion As New System.Collections.Generic.SortedList(Of String, String)

 

  Coleccion.Add("1", "Silla")

  Coleccion.Add("Dos", "Mesa")

  Coleccion.Add("3", "Puerta")

 

En la que podríamos haber declarado también

 

Dim Coleccion As New System.Collections.Generic.SortedList(Of Integer, String)

 

Para el primero de los ejemplos.

 

Coleccion.Add(2, "Mesa")

 

Las dos colecciones no son iguales.

 

Dim Coleccion As New System.Collections.SortedList

Dim Coleccion As New System.Collections.Generic.SortedList(Of Integer, String)

Octubre-2010
Pág. 32.2

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies