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