En este ejemplo se han creado dos "clases indexadas", que son tambin una novedad de C#. Una clase indexada permite mantener colecciones de elementos de cualquier tipo y acceder a ellos mediante "indexadores".
La clase ListaDeCuentas es una clase indexada: posee un ArrayList que usaremos para almacenar objetos de clase Cuenta. De ListaDeCuentas, en principio, nos interesa el cdigo de su indexador:
		public Cuenta this[String numero] 	// Pasamos como parmetro el nmero de la cuenta que buscamos
		{
			get { 
				for (int i=0; i<mCuentas.Count; i++) 
				{
					Cuenta c=(Cuenta) mCuentas[i];
					if (c.numero.Equals(numero))
						return c;	// Si la encontramos, la devolvemos
				}
				return null;		// Si no la encontramos, devolvemos null
			}

			set { mCuentas.Add(value); }	// Usamos el "set" para aadir cuentas al ArrayList
		}

Por otro lado, en el constructor de ListaDeCuentas introducimos una novedad, y es que cargamos el ArrayList leyendo cuentas de un fichero xml ("cuentas.xml"). Cada vez que vamos creando instancias de Cuenta a partir del cdigo xml, cargamos tambin los clientes que son titulares de la cuenta. Los clientes los vamos buscando por su NIF en la ListaDeClientes, que ha sido previamente cargada al cargar la ventana inicial de la aplicacin (FMenu).


En este tercer ejemplo se ha creado un control de usuario para manejar nmeros de cuenta de forma cmoda (presentacion/numeroDeCuenta.cs).
