Upload
sheryl
View
72
Download
2
Embed Size (px)
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
Citation preview
© 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
© 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
© 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 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.
© 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
© 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
© 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";
© 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");
© 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";
© 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;
© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.
Colecciones y ListasActividad 1:Manejo de ArrayList
© 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).
© 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;}
© 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");
© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.
Colecciones y ListasActividad 2:Manejo de Listas Genéricas
© 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.
© 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));}
© 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”);}
© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.
Colecciones y ListasActividad 3:Manejo de Hashtable
© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.