You are on page 1of 20

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Colecciones y Listas
Datos agrupados.
Arreglos de variables.
/* Crea un arreglos de nmeros de 3 posiciones */
int[] nmeros = new int[3];

3
2
1
0
2,0 2,1 2,2 2,3
1,0 1,1 1,2 1,3
0,0 0,1 0,2 0,3
3,0 3,1 3,2 3,3
2,0 2,1 2,2
1,0 1,1 1,2 1,3
0,0 0,1
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>();


using System;
using System.Collections.Generic;

public class Lista
{
Liststring listacolores = new Liststring();
}

Ejemplo
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
Borrado de elementos

ListaColores.Clear();
ListaColores.RemoveAt(2);
ListaColores.Remove(Amarillo);

Informacin de elementos

ListaColores.Count;

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.

You might also like