Exportar (0) Imprimir
Expandir todo

Queue<T>.Enqueue (Método)

Agrega un objeto al final de la colección Queue<T>.

Espacio de nombres:  System.Collections.Generic
Ensamblado:  System (en System.dll)

public void Enqueue(
	T item
)

Parámetros

item
Tipo: T
Objeto que se va a agregar a Queue<T>. El valor puede ser null para los tipos de referencia.

Si la propiedad Count ya es igual a la capacidad, se aumenta la capacidad de Queue<T> mediante la reasignación automática de la matriz interna y los elementos existentes se copian en la nueva matriz antes de agregar el nuevo elemento.

Si Count es menor que la capacidad de la matriz interna, este método es una operación O(1). Si es necesario reasignar la matriz interna para albergar el nuevo elemento, este método se convierte en una operación O(n), donde n es Count.

En el ejemplo de código siguiente se muestran varios métodos de la clase genérica Queue<T>, incluyendo el método Enqueue.

En este ejemplo de código se crea una cola de cadenas con capacidad predeterminada y se utiliza el método Enqueue para poner en la cola cinco cadenas. Se enumeran los elementos de la cola, lo que no cambia el estado de la cola. Se utiliza el método Dequeue para quitar la primera cadena de la cola. Se usa el método Peek para localizar el siguiente elemento de la cola y, a continuación, se utiliza el método Dequeue para quitarlo de la cola.

También se usa el método ToArray para crear una matriz y copiar en ella los elementos de la cola; a continuación, se pasa esta matriz al constructor Queue<T> que toma IEnumerable<T> y se crea una copia de la cola. Después, se muestran los elementos de la copia.

Se crea una matriz del doble de tamaño que el de la cola y se utiliza el método CopyTo para copiar los elementos de la matriz, empezando por el centro de la matriz. Se vuelve a usar el constructor Queue<T> para crear una segunda copia de la cola, que contiene tres elementos null al principio.

Se utiliza el método Contains para mostrar que la cadena "four" está en la primera copia de la cola y, después, el método Clear borra la copia y la propiedad Count muestra que la cola está vacía.


using System;
using System.Collections.Generic;

class Example
{
    public static void Main()
    {
        Queue<string> numbers = new Queue<string>();
        numbers.Enqueue("one");
        numbers.Enqueue("two");
        numbers.Enqueue("three");
        numbers.Enqueue("four");
        numbers.Enqueue("five");

        // A queue can be enumerated without disturbing its contents.
        foreach( string number in numbers )
        {
            Console.WriteLine(number);
        }

        Console.WriteLine("\nDequeuing '{0}'", numbers.Dequeue());
        Console.WriteLine("Peek at next item to dequeue: {0}", 
            numbers.Peek());
        Console.WriteLine("Dequeuing '{0}'", numbers.Dequeue());

        // Create a copy of the queue, using the ToArray method and the
        // constructor that accepts an IEnumerable<T>.
        Queue<string> queueCopy = new Queue<string>(numbers.ToArray());

        Console.WriteLine("\nContents of the first copy:");
        foreach( string number in queueCopy )
        {
            Console.WriteLine(number);
        }

        // Create an array twice the size of the queue and copy the
        // elements of the queue, starting at the middle of the 
        // array. 
        string[] array2 = new string[numbers.Count * 2];
        numbers.CopyTo(array2, numbers.Count);

        // Create a second queue, using the constructor that accepts an
        // IEnumerable(Of T).
        Queue<string> queueCopy2 = new Queue<string>(array2);

        Console.WriteLine("\nContents of the second copy, with duplicates and nulls:");
        foreach( string number in queueCopy2 )
        {
            Console.WriteLine(number);
        }

        Console.WriteLine("\nqueueCopy.Contains(\"four\") = {0}", 
            queueCopy.Contains("four"));

        Console.WriteLine("\nqueueCopy.Clear()");
        queueCopy.Clear();
        Console.WriteLine("\nqueueCopy.Count = {0}", queueCopy.Count);
    }
}

/* This code example produces the following output:

one
two
three
four
five

Dequeuing 'one'
Peek at next item to dequeue: two
Dequeuing 'two'

Contents of the copy:
three
four
five

Contents of the second copy, with duplicates and nulls:



three
four
five

queueCopy.Contains("four") = True

queueCopy.Clear()

queueCopy.Count = 0
 */


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft