Uno de los problemas de los Arreglos ya sea los tradicionales o las Listas en Secuencia que implementan los lenguajes orientados a objetos (ver esta publicación), es que en la mayoría de los casos los programadores no utilizamos todo el tamaño del arreglo y consecuentemente nos hace falta un entero que indique cuántos elementos del arreglo son válidos.
Recordemos las funciones que teníamos que escribir en Pascal: Function SumaVector(V : TVector, N : Integer) : Real; donde lo que queríamos hacer era sumar los elementos de un vector (V del tipo TVector) donde solamente los N primeros elementos eran válidos.
Por suerte alguien se avivó y realizó una implementación interesante cuya declaración de clase se conoce como ArrayList (así es en C#, para otros lenguajes tendrán que ver la documentación).
El siguiente ejemplo muestra alguna de las posibilidades que esta clase brinda:
1: using System;
2: using System.Collections;
3:
4: namespace ArrayList1
5: {
6: class Program
7: {
8: static void Main(string[] args)
9: {
10: ArrayList al1 = new ArrayList();
11: al1.Add(18);
12: Mostrar(al1);
13: al1.Add(1);
14: Mostrar(al1);
15: al1.Add(45);
16: Mostrar(al1);
17: al1.Add(18);
18: Mostrar(al1);
19:
20: Console.WriteLine("Insertamos 516 en la posición 3\n(recordar que todo comienza en cero)");
21: al1.Insert(2, 516);
22: Mostrar(al1);
23:
24: Console.WriteLine("Sacamos un elemento cuyo valor es 45");
25: al1.Remove(45);
26: Mostrar(al1);
27: }
28:
29: /// <summary>
30: /// Muestra el contenido de un objeto ArrayList
31: /// </summary>
32: /// <param name="al1">Referencia al objeto ArrayList</param>
33: private static void Mostrar(ArrayList al1)
34: {
35: Console.WriteLine("ArrayList : ");
36: foreach (object o in al1)
37: {
38: Console.WriteLine("{0,4}", o.ToString());
39: }
40: Console.WriteLine();
41: }
42:
43: }
44: }
La salida es la siguiente:

Entre las posibilidades de comportamiento implementado que tenemos con objetos del tipo ArrayList se encuentran: agregar (Add), sacar (Remove(...), RemoveAt(..)) que permite sacar un elemento por su valor o por su posición, Buscar (Contains(...)) y otros; también hay un par de propiedades interesantes Count que devuelve la cantidad de elementos útiles del ArrayList y Capacity que devuelve la capacidad (dimensión) actual del ArrayList (obviamente en su estructura interna se tiene un Array).
Después de ver esto, parece que la implementación de "Bolsa" ya estaba hecha
, y creí que estaba haciendo un descubrimiento fenomenal; de todos modos espero que toda la serie de publicaciones en relación al objeto de tipo Bolsa sirva para meterse en la programación orientada a objetos, pero siempre se debe averiguar si en la librería de clases bases hay algo que nos pueda servir, probablemente derivando (heredando) ese algo se logre el comportamiento que necesitamos implementar.
Para imprimir: Objetos del tipo ArrayList.pdf (70,33 kb)