Un enumerador es una estructura auxiliar que permite recorrer las estructuras dinámicas de forma secuencial.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace TablaHash
{
class Program
{
static void Main(string[] args)
{
// Creamos e insertamos datos
Hashtable miDiccio = new Hashtable();
miDiccio.Add("byte", "8 bits");
miDiccio.Add("pc", "personal computer");
miDiccio.Add("kilobyte", "1024 bytes");
// Mostramos todos los datos
Console.WriteLine("Contenido:");
IDictionaryEnumerator miEnumerador = miDiccio.GetEnumerator();
while ( miEnumerador.MoveNext() )
Console.WriteLine("{0} = {1}", miEnumerador.Key, miEnumerador.Value);
}
}
}
MoveNext, intenta moverse al siguiente elemento y devuelve «false» si no lo consigue. En el caso de las tablas hash, que tiene dos campos (clave y valor), el enumerador a usar será un «enumerador de diccionario» IDictionaryEnumerator), que contiene los campos Key y Value.
Para las colecciones «normales», como las pilas y las colas, el tipo de Enumerador a usar será un IEnumerator, con un campo Current para saber el valor actual:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace TablaHash
{
class Program
{
static void Main(string[] args)
{
Stack miPila = new Stack();
miPila.Push("Hola,");
miPila.Push("soy");
miPila.Push("yo");
// Mostramos todos los datos
Console.WriteLine("Contenido:");
IEnumerator miEnumerador = miPila.GetEnumerator();
while (miEnumerador.MoveNext())
Console.WriteLine("{0}", miEnumerador.Current);
}
}
}