Unidad 32. Colecciones en VB (IV)





5    Inserción, insert, insertRange.

Inserta el elemento especificado en la posición indicada.

 

  Item.Nombre = "Tres"

  Item.Longitud = 3

  Coleccion.Insert(2, Item)

 

En el ejemplo se inserta el item indicado en la colección en la posición dos, la posición ha de existir en la colección, y su contenido se sustituye por el nuevo.

 

Valor inicial de la colección Valor final de la colección después de la inserción.

 

1      Uno 1   Uno

2      Dos   2   Tres

 

El valor de la segunda posición se sustituye por el nuevo valor.

El método insertRange inserta los elementos indicados a partir de la posición indicada.

 

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

 

  Item = New Datos()

  Item.Nombre = "Tres"

  Item.Longitud = 21

  Otra.Add(Item)

 

  Item = New Datos()

  Item.Nombre = "Cuatro"

  Item.Longitud = 42

  Otra.Add(Item)

 

  Coleccion.InsertRange(2, Otra)

 

Valor inicial de la colección Valor final de la colección después de la inserción.

 

1      Uno 1   Uno

2      Dos   2   Dos

3   Tres

4   Cuatro

 

6    Copiado de la colección, CopyTo, ToArray.

El método CopyTo nos permite obtener un array del contenido de la colección.

El método ToArray también, cambia la sintaxis, por ser una función.

La sintaxis para la declaración del vector V, puede ser así:

 

  Dim V(Coleccion.Count - 1) As Datos

 

es

 

Coleccion.CopyTo(V)

V = Coleccion.ToArray()

 

La utilización puede ser:

 

  Dim V(Coleccion.Count - 1) As Datos

  Coleccion.CopyTo(V)

  For Each Dato In V

  Console.WriteLine("Valor {0} ", Dato.Nombre)

  Console.WriteLine("HashCode {0} ", Dato.Nombre.GetHashCode)

  Next

 

  Dim V(Coleccion.Count - 1) As Datos

 

Usamos Colección.count –1 para que el array quede bien declarado en su número de elementos.

La colección se inicia en el elemento uno y el vector en el elemento cero.

La colección si tiene tres elementos son el 1,2 y 3.

El vector sería el 0,1 y 2.

7    Clone.

Realiza una copia superficial de una colección, sólo copia los elementos de dicha colección, tanto si son tipos de referencia como si son tipos de valor, pero no copia los objetos a los que hacen referencia las referencias.

Las referencias de la nueva colección apuntan a los mismos objetos que las referencias de la colección original.

 

La sintaxis para utilizar el método Clone es:

 

Otra = CType(Coleccion.Clone(), SortedList)

 

Ctype es para permitir el cambio de una colección a otra.

 

Y la clonación se realiza en realidad así:

 

Coleccion.Clone()

 

Un ejemplo completo para el uso de Clone.

 

 Dim Coleccion As New System.Collections.SortedList

 Dim Otra As New System.Collections.SortedList

 

 Coleccion.Add(1, "Silla")

 Coleccion.Add(2, "Mesa")

 Coleccion.Add(3, "Puerta")

 

 For x = 0 To Coleccion.Count - 1

Console.WriteLine(" Clave {0} Valor  {1}  ", _

Coleccion.GetKey(x), Coleccion.GetByIndex(x))

 Next

 

 Otra = CType(Coleccion.Clone(), SortedList)

 

 For x = 0 To Otra.Count - 1

Console.WriteLine(" Clave {0} Valor {1}  ", Otra.GetKey(x), Otra.GetByIndex(x))

 Next

 

8    Comparar, Contains, ContainsKey, ContainsValue.

Podemos comprobar si determinada información existe o no en una colección.

El método que lo realiza es contains, que devuelve true o false.

La sintaxis del mismo es

 Coleccion.Contains(Item))

 

Siendo Item

 

 Item = New Datos

 Item.Nombre = "Silla"

 

Y su utilización por ejemplo:

 

 Console.WriteLine("Contains {0} ", Coleccion.Contains(Item))

 

Donde “Silla” es el dato que deseamos comprobar, pero recordemos que no buscamos “Silla”, si no un elemento en esa colección, que está representado por Item, y que es este caso contiene “Silla”

En las colecciones en las que se dispone de clave y valor el uso es el que sigue.

 

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

 Console.WriteLine(Coleccion.ContainsKey("2"))

 

Octubre-2010
Pág. 32.4

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

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