View
7.295
Download
2
Category
Preview:
DESCRIPTION
Sesión 04 del Curso Desarrollo de Aplicaciones .NET (2007-II) - Universidad San Ignacio de Loyola (USIL)
Citation preview
Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Desarrollo de Aplicaciones
Capítulo 04
Arrays y Colecciones
Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Agenda
• Repaso sesión anterior.
• Arrays– Definiciones
– Tipos de arrays
– Declaración e instanciación
– Inicialización
– Iteración sobre arrays
• Colecciones– Introducción
– Colecciones comunes
– ArrayList
• Que veremos la próxima sesión?
Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Repaso sesión anterior
• Control de flujo
– Branching no-condicional
– Branching condicional
– Bucles
• Excepciones
• Ver diapositivas previas.
Arrays
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Referencias
1. Learning C# 2005. Caps. 10 (Arrays), 14 (Generics and Collections)
2. Csharp Language Specification
3. MSDN C# Reference (http://msdn2.microsoft.com/en-us/library/618ayhy6(VS.80).aspx)
4. MSDN C# Programming Guide (http://msdn2.microsoft.com/en-
us/library/67ef8sbd(VS.80).aspx)
Arrays
• Son una colección de objetos del mismo tipo.
– Integers, Strings, Clase Persona, etc…
• Existen de una dimensión y multi-dimensionales.
• Se pueden tratar como una entidad simple (mediante un nombre).
• Empiezan con el elemento cero (zero-based).
• Deriva de la clase System.Array, por lo tanto es un tipo por referencia.
• Se almacenan en forma contínua (uno a continuación del otro).
• Tienen un tamaño definido. C# no soporta arrays dinámicos.
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Arrays
• Tipos de Arrays:
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Arrays
• Estructura de un array
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Arrays
• Se declaran y crean como objetos comunes.
• Declaración e instanciación:
Declarar un arreglo de enteros:
int[] array_de_enteros;
Instanciar e inicializar un array de 5 enteros con el valor cero:
array_de_enteros = new int[5];
O también:
int[] array_de_enteros = new int[5];
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
type[] array_name;
array_name = new type[n];
Arrays
• Valores por defecto:
– Al crear un array de tipos por valor: los elementos se
inicializan en cero.
myIntArray = new int[5]; // 5 enteros con el valor cero
– Al inicializar un array de tipos por referencia: los
elementos se inicializan en null.
Button[] myButtonArray = new Button[3]; // 3 botones con el valor
null.
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Arrays
• Posicionamiento en memoria
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Arrays
• Inicialización de los elementos de un array:
int[] pins = new int[4] { 9, 3, 7, 2 };
o
int[] pins = { 9, 3, 7, 2 };
Person[] arreglo = new Person[] { new Person(),
newPerson() };
o
Person[] arreglo = { new Person(), new Person() }
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Arrays
• Iteración sobre un array:
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
int[] pins = { 9, 3, 7, 2 };
for (int index = 0; index < pins.Length; index++)
{
int pin = pins[index];
Console.WriteLine(pin);
}
int[] pins = { 9, 3, 7, 2 };
foreach (int pin in pins)
{
Console.WriteLine(pin);
}
Colecciones
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Referencias
1. Learning C# 2005. Caps 14 (Generics and Collections).
Colecciones
• Son listas de datos que no se acceden necesariamente por
un índice.
• Proveen funcionalidad adicional a los clásicos Arrays.
• Están diseñadas para manejar listas dinámicas de objetos.
• Pueden aumentar o disminuir su tamaño automáticamente.
• Tienen un mejor performance en el redimensionamiento que
Array.Resize.
• Almacenan sus elementos, como objetos.
• Hay varios tipos de colecciones con fines específicos.
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Colecciones
• Colecciones Comunes del Framework
– Arrays
– ArrayList y List
– Hashtables y Dictionary
– SortedList y SortedDictionary
– Queue
– Stack
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Colecciones
• ArrayList:
– Es la más parecida a un Array, y es una versión
más sofisticada.
– Es totalmente dinámica al manejar su contenido.
– Tiene mejor performance para el
redimensionado.
– Se le pueden agregar o remover elementos,
invocando a sus métodos.
– Es la versión no-genérica de List<T>.
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Colecciones
• ArrayList:
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
public class Employee
{
private int empID;
public Employee( int empID )
{
this.empID = empID;
}
public override string ToString( )
{
return empID.ToString( );
}
public int EmpID
{
get
{
return empID;
}
set
{
empID = value;
}
}
}
public class Tester
{
static void Main( )
{
List<Employee> empList = new List<Employee>( );
List<int> intList = new List<int>( );
// populate the List
for ( int i = 0; i < 5; i++ )
{
empList.Add( new Employee( i + 100 ) );
intList.Add( i * 5 );
}
// print all the contents
for ( int i = 0; i < intList.Count; i++ )
{
Console.Write( "{0} ", intList[i].ToString( ) );
}
Console.WriteLine( "\n" );
// print all the contents of the Employee List
for ( int i = 0; i < empList.Count; i++ )
{
Console.Write( "{0} ", empList[i].ToString( ) );
}
Console.WriteLine( "\n" );
Console.WriteLine( "empList.Capacity: {0}", empList.Capacity );
}
}
Que veremos la próxima sesión?
• ADO.Net 2.0
Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Fin de la sesión
• Dudas, comentarios, sugerencias?
• Comunicarse por email a eriveraa@gmail.com
• Gracias por su atención !!
Recommended