Todos los desarrolladores hemos tenido la necesidad de utilizar listas de datos, muchos solo hacen uso de los arreglos, sin embargo el dot net Framework nos proporciona una buena cantidad de listas especializadas, según el tipo de información que queramos manejar. Entonces el principal problema es determinar cuál es la lista más adecuada para el tipo de datos que queremos manejar. Conozcamos un poco las colecciones que encontramos en system.collections
Colección | Descripción |
ArrayList | Almacena una lista de objetos |
SortedList | Almacena una lista de objetos pero ordenados |
Queue | Almacena una lista de objetos pero con la restricción de que el primer objeto en entrar es el primero en salir |
Stack | Almacena una lista de objetos pero con la restricción de que el último objeto en entrar es el primero en salir |
Hashtable | Almacena una colección de pares de valores, una llave y un valor. |
SortedList | Almacena una colección de pares de valores, una llave y un valor, pero a diferencia de hashtable, los almacena de manera ordenada. |
ListDiccionary | Tiene la misma funcionalidad del Hashtable, solo que optimizado para colecciones pequeñas (con pocos elementos) |
HybridDiccionary | Esta colección se comporta como un ListDictionary cuando tiene pocos elementos, pero si la colección crece, toma el comportamiento del hashtable. |
OrderedDictionary | Es muy similar al hashtable, pero agrega la funcionalidad necesaria para poder acceder a los elementos mediante un índice. |
StringCollection | Es muy similar al ArrayList pero para manejar colecciones de string exclusivamente. |
StringDiccionary | Es muy similar al Hashtable pero para manejar colecciones de string, tanto la llave como el valor tienen que ser string. |
Las colecciones anteriormente citadas (a excepción de StringCollection y StringDiccionary) usan object como elementos, esto permite una gran confiabilidad pero no es lo mejor tomando en cuenta confiabilidad y el rendimiento. Cuando requiere de mejor rendimiento o mayor estabilidad de la aplicación (mediante la validación de tipos), el framework nos proporciona una serie de colecciones equivalentes a las anteriormente citadas, estas son llamadas colecciones genéricas (generic collection), y tienen la particularidad de comportarse igual que las anteriores pero con la particularidad que podemos definirle el tipo de dato que vamos a almacenar, ya no nos vemos obligados a usar el tipo "object".
El funcionamiento de estas colecciones es tan similar a las anteriormente vistas que existe una tabla de equivalencias, en la siguiente tabla podemos ver a la izquierda las colecciones que ya conocemos, pero cuando necesitemos trabajar con colecciones de un tipo de dato definido debemos usar el equivalente de la derecha, veamos:
Colección | Colección genérica |
ArrayList | List |
Queue | Queue |
Stack | Stack |
Hashtable | Dictionary |
SortedList | SortedList |
ListDictionary | Dictionary |
HybridDictionary | Dictionary |
OrderedDictionary | Dictionary |
SortedDictionary | SortedDictionary |
NameValueCollection | Dictionary |
DictionaryEntry | KeyValuePair |
StringCollection | List |
StringDictionary | Dictionary |
En futuros post espero poder mostrarles el funcionamiento de la mayoría de las colecciones.
1 comentario:
Excelente las definiciones!! :D
me pregunto algo de casualidad tienes algunas demos pero aplicando ADO.Net a todas esas colecciones?? si las tuvieras serias tan amable de enviarmelas ami correo:
ba_jorge_r@hotmail.com
O tal vz si tienes algunos links donde se apliquen y si tienes en VB.Net mucho mejor pero si es en C# no hay problema,gracias doc.. :D
Salu2
Jorge R.
Publicar un comentario