Lenguaje de Programación .Net LDP3501: Visual Studio .Net 2008

20
© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Lenguaje de Programación .Net LDP3501: Visual Studio .Net 2008 Manejo de Colecciones y Listas: ArrayList, List<T>, Hashtable y Diccionarios

description

Lenguaje de Programación .Net LDP3501: Visual Studio .Net 2008 Manejo de Colecciones y Listas: ArrayList , List , Hashtable y Diccionarios. Colecciones y Listas. Datos agrupados. Arreglos de variables. 0,0. 0,1. 0,0. 0,1. 0,2. 0,3. 0. 1,0. 1,1. 1,2. 1,3. 1,0. 1,1. 1,2. - PowerPoint PPT Presentation

Transcript of Lenguaje de Programación .Net LDP3501: Visual Studio .Net 2008

Page 1: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Lenguaje de Programación .Net

LDP3501: Visual Studio .Net 2008

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

Page 2: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y Listas• Datos agrupados.• Arreglos de variables.

/* Crea un arreglos de números de 3 posiciones */int[] números = 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

Page 3: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 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.

Page 4: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 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 amplía automáticamente si es necesario.

• ArrayList y List(T) proporcionan métodos para agregar, insertar o quitar un intervalo de elementos. En una colección Array, sólo puede obtener o establecer un valor para un elemento cada vez.

Page 5: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y Listas• Se puede establecer el límite inferior

de Array, pero el límite inferior de ArrayList o List(T) siempre es cero.

• Array puede tener varias dimensiones, mientras que ArrayList o List(T) siempre tienen una dimensión exactamente.

• ArrayList almacena elemntos de tipo Object. List trabaja con seguridad de tipos

Page 6: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasDeclaración

ArrayList nombre = new ArrayList ();

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

using System;using System.Collections.Generic;

public class Lista{

List‹string› listacolores = new List‹string›();}

Ejemplo

Page 7: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasAñadir elementos

List‹string› ListaColores = new List‹string›();

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

Acceso a los elementosConsole.WriteLine (ListaColores[1]); ListaColores[2] = "Negro";

Page 8: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasAcceso mediante ciclo foreach

/* Mostrar todos los colores de la lista */foreach (string color in ListaColores){

Console.WriteLine ( color );}

Insertar elementos

ListaColores.Insert(2, "Blanco");

Page 9: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasOrdenamiento de la lista

ListaColores.Sort();

Búsqueda de elementos

ListaColores.Contains(“Amarillo”); // trueListaColores.IndexOf("Amarillo")); // 3ListaColores[ListaColores.IndexOf("Amarillo")] = "Negro";

Page 10: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y Listas

Borrado de elementosListaColores.Clear();ListaColores.RemoveAt(2);ListaColores.Remove(“Amarillo”);

Información de elementos

ListaColores.Count;

Page 11: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasActividad 1:Manejo de ArrayList

Page 12: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasTipos Genéricos (Generics)• Incluidos en la versión 2.0• Concepto de parámetros de tipo

<T>.• Reusabilidad, seguridad de tipos y

eficacia.• Mejora el rendimiento al no estar

trabajando con elementos Object (boxing y unboxing).

Page 13: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasProblema de la agrupación no tipada.

System.Collections.ArrayList lista = new System.Collections.ArrayList();

// Agrega un número.lista.Add(3);

// Agrega una cadena.lista.Add("Azul");

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

Page 14: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasProblema de la agrupación no tipada.

// Declara una lista genérica para tipos enterosList<int> lista = new List<int>();

// Sin boxing ni casting:lista.Add(3);

// Esto daría un error de compilación al chequear el tipo:// lista.Add("Azul");

Page 15: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasActividad 2:Manejo de Listas Genéricas

Page 16: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasHashtables• Asignación de una clave para

acceder a los elementos.• Implementación de IDictionary.• Manejo de sectores de

almacenamiento para rápido acceso.

• Elementos de componen del un par clave-valor.

• Instancias de DictionaryEntry.

Page 17: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasDeclaración

Hashtable nombre = new Hashtable();

Agregar elementosHashtable coleccion = new Hashtable();

for (i=0; i < 5; i++){coleccion.Add(i, string.Format(“Elemento {0}”, i));}

Page 18: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasAcceso mediante ciclo foreach

/* Mostrar todos los colores de la lista */foreach (DictionaryEntry entrada in ListaColores){

Console.WriteLine ( entrada.Key);Console.WriteLine ( entrada.Value);

}

Validación de llavesstring llave = “Uno”;

if (coleccion.ContainsKey(llave)){

Console.WriteLine (“Llave existe”);}

Page 19: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Colecciones y ListasActividad 3:Manejo de Hashtable

Page 20: Lenguaje de Programación  .Net LDP3501: Visual Studio  .Net  2008

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.