Vous êtes sur la page 1sur 3

Colecciones - List, ArrayList

Las colecciones de clases de C# son un conjunto de clases diseadas especficamente para


agrupar objetos y llevar a cabo tareas con ellos.
Tanto la listT como la ArrayList y otras clases de la Collections tienen propiedades muy similares
a los arrays de C# (para ms detalles sobre estos busquen nueva el tema Matrices y confirmen).
Una ventaja fundamental de estas clases sobre los arrays es que puedan crecer y reducir el
nmero de objetos almacenados.
La clase listT esta contenida en System.Collections.Generic, mientras que la
clase ArrayList figura en el System.Collections.
La sintaxis para crear una coleccin listT es la siguiente:
Listtipo nombre = new Listtipo();
ArrayList es un objeto creado de una manera similar, aunque sin el argumento de tipo:
ArrayList nombre = new ArrayList ();
Con esta sintaxis ahora podemos crear una listT denominada listacolores:
using System;
using System.Collections.Generic;
public class Lists
{
static void Main()
{
Liststring listacolores = new Liststring();
}
}
Aadir artculos a las listas
Una vez que una lista se ha creado hay una serie de mtodos que pueden ser llamados a realizar
tareas en la lista. En este caso para agrear elementos a la lista de objetos se utiliza el
mtodo Add(). Ejemplo:
Liststring ListaColores = new Liststring();
ListaColores.Add
ListaColores.Add
ListaColores.Add
ListaColores.Add
ListaColores.Add

("Azul");
("Rojo");
("Verde");
("Amarillo");
("Morado");

Acceso a los elementos


A los elementos individuales en una lista se puede acceder mediante el ndice del valor de la
partida (teniendo en cuenta que el primer punto del ndice es 0, el segundo ndice 1 y as
sucesivamente). El valor del ndice se encuentra entre corchetes tras el nombre de la lista. Por
ejemplo, para acceder al segundo punto del objeto ListaColores:
Console.WriteLine (ListaColores[1]);

Un elemento de la lista puede cambiar su valor de manera similar usando el ndice combinado
con el operador de asignacin. Por ejemplo, para cambiar el color de verde a mamey:
ListaColores[2] = "mamey";
Todos los elementos de una lista se puede acceder mediante un bucle foreach. Por ejemplo:
foreach (string color in ListaColores)
{
Console.WriteLine ( color );
}
Cuando compilado y ejecutado, el cdigo de salida anterior mostrara todos los colores.
Insercin de artculos en una lista
Anteriormente se utiliz el mtodo Add() para aadir elementos a una lista. El mtodo Add(), sin
embargo, slo aade elementos al final de una lista. A veces es necesario aadir un nuevo tema
en una ubicacin especfica en una lista. Insert() es el mtodo para este fin
especfico. Insert() recibe dos argumentos, un entero que indica el ndice de localizacin de la
insercin y el tema que se incluir en ese lugar. Por ejemplo, para insertar un elemento en la
posicin 2 de la lista seria:
ListaColores.Insert(2, "Blanco");
Ordenando Listas
No hay manera de decirle a C# que ordene automticamente una lista de artculos despues de
aadir. Si los elementos de una lista deben estar siempre ordenados se debe llamar al
metodo Sort una vez se aaden nuevos elementos:
ListaColores.Sort();
Bsqueda de elementos en una lista
Se proveen un buen nmero de mtodos con las clases listas y la ArrayList. El mtodo ms bsico
es el Contains(), en el cual cuando se pide a un objeto ArrayList o List devuelve truesi el tema se
encuentra en la lista, o false si no se encuentra.
El IndexOf() devuelve el valor de un ndice de un elemento de la lista. Por ejemplo, el cdigo
siguiente muestra el valor de salida de 2, que es el ndice de la posicin de "Amarillo" en la
cadena:
Liststring ListaColores = new Liststring();
ListaColores.Add
ListaColores.Add
ListaColores.Add
ListaColores.Add
ListaColores.Add

("Red");
("Green");
("Amarillo");
("Morado");
("Mamey");

Console.WriteLine(ListaColores.IndexOf("Amarillo"));

Si el elemento no se encuentra en la lista devuelve -1.


Esta tcnica podra utilizarse para reemplazar un valor con otro. Por ejemplo, sin conocer de
antemano el valor del ndice del "Amarillo" cadena podemos cambiar a "Negro":
ListaColores[ListaColores.IndexOf("Amarillo")] = "Negro";
El LastIndexOf() mtodo devuelve el valor del ndice del ltimo elemento de la lista para que
coincida con el punto especificado. Esto es particularmente til cuando la lista contiene
elementos duplicados.
Obtener informacion de una lista
Hay dos miembros de la clase que son tiles para obtener informacin acerca de una lista de C #
o coleccin de objetos ArrayList. La propiedad Capacity puede ser utilizada para identificar el
nmero de artculos que puede almacenar una coleccin sin tener que cambiar el tamao.
El propiedad Count, por otra parte, identifica cuantos artculos se encuentran actualmente
almacenados en la lista. Por razones obvias, Capacity sera siempre superior a Count.
En los casos en que existe una gran diferencia entre el Count y Capacity los elementos pueden
ser borrados con el mtodo TrimExcess().
Borrado de elementos
Todos los elementos de una lista podrn ser borrados mediante el mtodo Clear():
ListaColores.Clear();
Clear() elimina los elementos de la lista y establece la propiedad Count a cero. La
propiedad Capacity, sin embargo, sigue siendo la misma. Para eliminar la Capacity despues de el
mtodo Clear() hay que llamar a TrimExcess().

Vous aimerez peut-être aussi