Introducción a los iteradores en C #

Los iteradores son el método que se utiliza para recuperar los elementos y realiza la iteración uno por uno en matrices, listas, etc. La declaración de rendimiento de rendimiento se utiliza con el método de iterador para devolver el elemento de la colección y el intervalo de rendimiento se utiliza para detener la iteración. . Siempre almacena la ubicación actual y devuelve el siguiente elemento cuando tiene lugar la siguiente iteración. Los valores de objeto IEnumerable e IEnumerator son el tipo de rendimiento de retorno. En este tema, vamos a aprender sobre iteradores en C #.

Métodos de iteradores de C #

A continuación se muestran los ejemplos para mostrar la iteración con varios métodos, como el bucle, el bucle foreach y los enumeradores.

1. Para Loop

Ejemplo 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
static void Main(string() args)
(
for (int i = 1; i <= 7; i++)
(
Console.WriteLine( i);
)
Console.WriteLine("Press Enter Key to Exit..");
Console.ReadLine();
)
)
)

Un bucle for consta de tres declaraciones. Al principio, se ejecuta la inicialización y luego se condiciona, que es una expresión booleana. Después de ese iterador se ejecuta para cambiar el valor de la variable inicializada. Esto para el proceso de bucle continúa hasta que la condición es falsa y cuando es falso, para bucle termina.

La salida del código anterior es

2. Para cada bucle

Ejemplo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
static void Main(string()args)
(
string() values = new string(3) ( "John", "Bob", "Eva" );
foreach (string name in values)
(
Console.WriteLine(name);
)
Console.WriteLine("Press Enter Key to Exit..");
Console.ReadLine();
)
)
)

Se usa un bucle foreach a lo largo de la palabra clave para iterar elementos. La palabra clave se utiliza para seleccionar el elemento en cada iteración. El primer elemento se itera y almacena en el elemento después de ese segundo elemento, etc. El número de iteraciones de foreach depende del número de elementos en la colección. En este ejemplo, la colección consta de tres valores, por lo que el número de foreach tendrá lugar tres veces y mostrará los valores.

La salida del código anterior es

3. Enumeradores

Ejemplo 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
public static IEnumerable GetArray()
(
int() array = new int() ( 12, 45, 56, 21, 4 ); // initializing array elements
foreach (var element in array) // iterating array element
(
yield return element.ToString(); // returning elements
)
)
public static void Main(string()args) // main method
(
IEnumerable elements = GetArray(); // storing array element
foreach(var element in elements)
(
Console.WriteLine(element);
Console.ReadKey();
)
)
)
)

En este ejemplo, hay una matriz del elemento que contiene cinco elementos y foreach se usa para la iteración de cada elemento. La declaración de rendimiento se utiliza para devolver el elemento después de cada iteración. La interfaz IEnumerable está almacenando cada elemento, mientras que foreach se usa para mostrar los elementos que regresan de la iteración. Este iterador se usa en un método.

La salida del código anterior es

Ejemplo # 2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
public static IEnumerable GetList()
(
List list = new List();
list.Add("Sunday"); // adding elements to list
list.Add("Monday");
list.Add("Tuesday");
list.Add("Wednesday");
list.Add("Thursday");
list.Add("Friday");
list.Add("Saturday");
foreach(var element in list) //iteration of list elements
(
yield return element; //returning elements after iteration
)
)
public static void Main(string()args) // main method
(
IEnumerable elements = GetList(); // storing elements
foreach(var element in elements)
(
Console.WriteLine(element);
Console.ReadKey();
)
)
)
)

En este ejemplo, se usa la colección de listas y el método list.add se usa para agregar elementos en la lista. Aquí la lista consta de siete elementos. Se usa un foreach para la iteración de cada elemento. La declaración de rendimiento se utiliza para devolver el elemento después de cada iteración. La interfaz IEnumerable está almacenando cada elemento, mientras que foreach se usa para mostrar los elementos que regresan de la iteración.

La salida del código anterior es

Ejemplo # 3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
public static void Main(string() args)
(
foreach(var item in fib(6)) // iteration of elements
(
Console.WriteLine(item);
)
)
public static IEnumerable fib(int number)
(
int x = 0, y = 1;
// yield return x;
//yield return y;
for (int i=0; i<=number; i++)
(
int temp = x;
x = y;
y = temp + y;
yield return y; // returning the element
Console.ReadKey();
)
)
)
)

En este ejemplo, se genera la serie Fibonacci y el iterador se usa en un operador. La implementación de este mismo como usamos iteradores en un método, excepto que en este operador se usa para devolver cosas.

La salida del código anterior es

Ejemplo # 4

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
static void Main()
(
List list = new List();
list.Add(10); // adding elements to list
list.Add(20);
list.Add(30);
list.Add(40);
list.Add(50);
list.Add(60);
list.Add(70);
List.Enumerator a = list.GetEnumerator();
Write(a);
)
static void Write(IEnumerator a)
(
while (a.MoveNext())
(
int value = a.Current;
Console.WriteLine(value);
Console.ReadKey();
)
)
)
)

En el ejemplo anterior, se usa la colección de listas. El método List.add se usa para agregar elementos en la lista. Aquí la lista contiene siete elementos. MoveNext y Current se utilizan. MoveNext básicamente realiza un seguimiento si el siguiente elemento está presente o no y devuelve un valor booleano que puede ser verdadero si el elemento está disponible y falso si no hay ningún elemento, mientras que la corriente se utiliza para recuperar el elemento actual.

La salida del código anterior es

Ventajas y desventajas de Iterator

Algunas de las ventajas se mencionan a continuación:

  1. Los iteradores se pueden usar como método y obtener accesor.
  2. Se puede utilizar como operadores o como propiedad.
  3. Los iteradores son fáciles de leer y de implementar.
  4. Los iteradores se usan con las colecciones genéricas y no genéricas.

Algunas de las desventajas se mencionan a continuación:

  1. Los iteradores no son útiles en el seguimiento de una lista.
  2. Como el iterador almacena la posición, no puede actualizar la estructura iterada.
  3. Los iteradores no se utilizan en el constructor estático, finalizador estático y constructor de instancias.

Conclusión: iteradores en C #

Entonces, para atravesar la secuencia de valores, se pueden usar iteradores con la instrucción foreach. El rendimiento se puede usar varias veces con el iterador para devolver los elementos. Es fácil de implementar y bastante útil.

Artículos recomendados

Esta es una guía de iteradores en C #. Aquí discutimos los ejemplos para mostrar la iteración con varios métodos como el bucle, el bucle foreach y los enumeradores. También puede consultar el siguiente artículo para obtener más información.

  1. Destructor en C #
  2. Serie Fibonacci en C #
  3. Método de anulación en C #
  4. C # para bucle
  5. Anulación en Java
  6. Métodos de trabajo y Top 3 Enum en C #