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); } } }