Obtener un enumerador que itera a través de la pila en C#

El método Stack<T>.GetEnumerator se usa para obtener un IEnumerator que itera a través de la pila. Y viene bajo el espacio de System.Collections.Genericnombres.

Sintaxis:

public System.Collections.Generic.Stack<T>.Enumerator GetEnumerator ();

Los siguientes programas ilustran el uso del método mencionado anteriormente:

Ejemplo 1:

// C# program to illustrate the
// Stack<T>.GetEnumerator Method
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack of strings
        Stack<string> myStack = new Stack<string>();
  
        // Inserting the elements into the Stack
        myStack.Push("Geeks");
        myStack.Push("Geeks Classes");
        myStack.Push("Noida");
        myStack.Push("Data Structures");
        myStack.Push("GeeksforGeeks");
  
        // To get an Enumerator
        // for the Stack
        IEnumerator<string> enumerator = 
         myStack.GetEnumerator();
  
        // If MoveNext passes the end of the
        // collection, the enumerator is positioned
        // after the last element in the Stack
        // and MoveNext returns false.
        while (enumerator.MoveNext()) {
  
            Console.WriteLine(enumerator.Current);
        }
    }
}
Producción:

GeeksforGeeks
Data Structures
Noida
Geeks Classes
Geeks

Ejemplo 2:

// C# code to illustrate the
// Stack<T>.GetEnumerator Method
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack of integers
        Stack<int> myStack = new Stack<int>();
  
        // Inserting the elements into the Stack
        myStack.Push(2);
        myStack.Push(3);
        myStack.Push(4);
        myStack.Push(5);
        myStack.Push(6);
  
        // To get an Enumerator
        // for the Stack
        IEnumerator<int> enumerator = 
        myStack.GetEnumerator();
  
        // If MoveNext passes the end of the
        // collection, the enumerator is positioned
        // after the last element in the Stack
        // and MoveNext returns false.
        while (enumerator.MoveNext()) {
  
            Console.WriteLine(enumerator.Current);
        }
    }
}
Producción:

6
5
4
3
2

Nota:

  • La instrucción foreach del lenguaje C# oculta la complejidad de los enumeradores. Por lo tanto, se recomienda usar foreach, en lugar de manipular directamente el enumerador.
  • Los enumeradores se pueden usar para leer los datos de la colección, pero no se pueden usar para modificar la colección subyacente.
  • Current devuelve el mismo objeto hasta que se llama MoveNext o Reset. MoveNext establece Current en el siguiente elemento.
  • Un enumerador sigue siendo válido mientras la colección permanezca sin cambios. Si se realizan cambios en la colección, como agregar, modificar o eliminar elementos, el enumerador se invalida irremediablemente y su comportamiento no está definido.
  • Este método es una operación O(1).

Referencia:

Publicación traducida automáticamente

Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *