Ejemplo n.º 1
0
        static void FormasDeConstruirEnumeradoresEncadenados( )
        {
            Console.WriteLine("DEMOSTRACIÓN Diferentes maneras de construir un enumerador encadenado\n");

            IEnumerador m1 = new Filtrar(new Pares(new Numeros(10)), i => i < 7);

            Mostrar(m1, "INSTANCIAS ANIDADAS");

            IEnumerador m2 = FiltrarE(ParesE(NumerosE(10)), i => i < 7);

            Mostrar(m2, "FUNCIONES ANIDADAS");

            IEnumerador m3 = new Numeros(10);

            m3 = new Pares(m3);
            m3 = new Filtrar(m3, i => i < 7);
            Mostrar(m3, "SECUENCIAL");


            IEnumerador m4 = NumerosE(10);

            m4 = ParesE(m4);
            m4 = FiltrarE(m4, i => i < 7);
            Mostrar(m4, "SECUENCIALES con FUNCIÓN AUXILIAR");


            IEnumerador m5 = NumerosE(10)             // Tambien se puede escribir como "10.NumerosE()"
                             .ParesE()
                             .FiltrarE(i => i < 7);

            Mostrar(m5, "ENCADENADA con EXTENCIÓN DE MÉTODOS");


            Console.ReadLine();
        }
Ejemplo n.º 2
0
 static void Mostrar(this IEnumerador origen, string descripcion)
 {
     Console.WriteLine($" MOSTRAR: Creación de instancias > {descripcion}");
     while (origen.Avanzar())
     {
         Console.WriteLine($" · {origen.Actual} ");
     }
     Console.WriteLine(".\n");
 }
Ejemplo n.º 3
0
 public Filtrar(IEnumerador numero, Condicion condicion)
 {
     this.numero    = numero;
     this.condicion = condicion;
 }
Ejemplo n.º 4
0
 public Pares(IEnumerador numero)
 {
     this.numero = numero;
 }
Ejemplo n.º 5
0
 static IEnumerador FiltrarE(this IEnumerador numeros, Condicion condicion) => new Filtrar(numeros, condicion);
Ejemplo n.º 6
0
 static IEnumerador ParesE(this IEnumerador numeros) => new Pares(numeros);
Ejemplo n.º 7
0
 public static void Recorrer(this IEnumerador lista) => Recorrer(lista.GetEnumerar());