Está en la página 1de 20

Lenguaje de Programacin

.Net
LDP3501: Visual Studio .Net
2008

Manejo de Colecciones y
Listas: ArrayList, List<T>,
Hashtable y Diccionarios

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Datos agrupados.
Arreglos de variables.

0 0,0 0,1 0,2 0,3 0,0 0,1

1 1,0 1,1 1,2 1,3 1,0 1,1 1,2 1,3

2 2,0 2,1 2,2 2,3 2,0 2,1 2,2

3 3,0 3,1 3,2 3,3

/* Crea un arreglos de nmeros de 3


posiciones */
int[] nmeros = new int[3];

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Colecciones especializadas.
System.Collections y
System.Collections.Generics.
Facilidades de manejo: Agregar,
Ordenar, Eliminar, Insertar y
Recuperar.
Clases ArrayList y List<T>.
Versiones sofisticadas de una
matriz.

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
La capacidad de Array es fija,
mientras que la capacidad de
ArrayList o List(T) se ampla
automticamente si es necesario.
ArrayList y List(T) proporcionan
mtodos para agregar, insertar o
quitar un intervalo de elementos.
En una coleccin Array, slo
puede obtener o establecer un
valor para un elemento cada vez.
2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.
Colecciones y Listas
Se puede establecer el lmite inferior
de Array, pero el lmite inferior de
ArrayList o List(T) siempre es cero.
Array puede tener varias
dimensiones, mientras que ArrayList
o List(T) siempre tienen una
dimensin exactamente.
ArrayList almacena elemntos de tipo
Object. List trabaja con seguridad de
tipos

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Declaracin

ArrayList nombre = new ArrayList ();

List<tipo> nombre = new List<tipo>();

Ejemplo
using System;
using System.Collections.Generic;

public class Lista


{
Liststring listacolores = new Liststring();
}

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Aadir elementos
Liststring ListaColores = new Liststring();

ListaColores.Add ("Azul");
ListaColores.Add ("Rojo");
ListaColores.Add ("Verde");
ListaColores.Add ("Amarillo");
ListaColores.Add ("Morado");

Acceso a los elementos

Console.WriteLine (ListaColores[1]);

ListaColores[2] = "Negro";

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Acceso mediante ciclo foreach
/* Mostrar todos los colores de la lista */
foreach (string color in ListaColores)
{
Console.WriteLine ( color );
}

Insertar elementos

ListaColores.Insert(2, "Blanco");

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Ordenamiento de la lista
ListaColores.Sort();

Bsqueda de elementos

ListaColores.Contains(Amarillo); // true
ListaColores.IndexOf("Amarillo")); // 3
ListaColores[ListaColores.IndexOf("Amarillo")] =
"Negro";

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Informacin de elementos

ListaColores.Count;

Borrado de elementos
ListaColores.Clear();
ListaColores.RemoveAt(2);
ListaColores.Remove(Amarillo);

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Actividad 1:
Manejo de ArrayList

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Tipos Genricos (Generics)
Incluidos en la versin 2.0
Concepto de parmetros de tipo
<T>.
Reusabilidad, seguridad de tipos y
eficacia.
Mejora el rendimiento al no estar
trabajando con elementos Object
(boxing y unboxing).

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Problema de la agrupacin no tipada.

System.Collections.ArrayList lista = new


System.Collections.ArrayList();

// Agrega un nmero.
lista.Add(3);

// Agrega una cadena.


lista.Add("Azul");

int t = 0;
// Esto causa una excepcin del tipo InvalidCastException.
foreach (int x in lista)
{
t += x;
}

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Problema de la agrupacin no tipada.

// Declara una lista genrica para tipos enteros


List<int> lista = new List<int>();

// Sin boxing ni casting:


lista.Add(3);

// Esto dara un error de compilacin al chequear el tipo:


// lista.Add("Azul");

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Actividad 2:
Manejo de Listas Genricas

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Hashtables
Asignacin de una clave para
acceder a los elementos.
Implementacin de IDictionary.
Manejo de sectores de
almacenamiento para rpido
acceso.
Elementos de componen del un
par clave-valor.
Instancias de DictionaryEntry.
2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.
Colecciones y Listas
Declaracin
Hashtable nombre = new Hashtable();

Agregar elementos
Hashtable coleccion = new Hashtable();

for (i=0; i < 5; i++)


{
coleccion.Add(i, string.Format(Elemento {0}, i));
}

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Acceso mediante ciclo foreach
/* Mostrar todos los colores de la lista */
foreach (DictionaryEntry entrada in ListaColores)
{
Console.WriteLine ( entrada.Key);
Console.WriteLine ( entrada.Value);
}

Validacin de llaves
string llave = Uno;

if (coleccion.ContainsKey(llave))
{
Console.WriteLine (Llave existe);
}

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Actividad 3:
Manejo de Hashtable

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

También podría gustarte