Queue Classe

Définition

Représente une collection d’objets de première entrée et sortante.

public ref class Queue : System::Collections::ICollection
public ref class Queue : ICloneable, System::Collections::ICollection
public class Queue : System.Collections.ICollection
[System.Serializable]
public class Queue : ICloneable, System.Collections.ICollection
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Queue : ICloneable, System.Collections.ICollection
public class Queue : ICloneable, System.Collections.ICollection
type Queue = class
    interface ICollection
    interface IEnumerable
[<System.Serializable>]
type Queue = class
    interface ICollection
    interface IEnumerable
    interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Queue = class
    interface ICollection
    interface IEnumerable
    interface ICloneable
type Queue = class
    interface ICollection
    interface IEnumerable
    interface ICloneable
Public Class Queue
Implements ICollection
Public Class Queue
Implements ICloneable, ICollection
Héritage
Queue
Attributs
Implémente

Exemples

L’exemple suivant montre comment créer et ajouter des valeurs à une Queue et comment imprimer ses valeurs.

 using System;
 using System.Collections;
 public class SamplesQueue  {

    public static void Main()  {

       // Creates and initializes a new Queue.
       Queue myQ = new Queue();
       myQ.Enqueue("Hello");
       myQ.Enqueue("World");
       myQ.Enqueue("!");

       // Displays the properties and values of the Queue.
       Console.WriteLine( "myQ" );
       Console.WriteLine( "\tCount:    {0}", myQ.Count );
       Console.Write( "\tValues:" );
       PrintValues( myQ );
    }

    public static void PrintValues( IEnumerable myCollection )  {
       foreach ( Object obj in myCollection )
          Console.Write( "    {0}", obj );
       Console.WriteLine();
    }
 }
 /*
 This code produces the following output.

 myQ
     Count:    3
     Values:    Hello    World    !
*/
Imports System.Collections

Public Class SamplesQueue

    Public Shared Sub Main()

        ' Creates and initializes a new Queue.
        Dim myQ As New Queue()
        myQ.Enqueue("Hello")
        myQ.Enqueue("World")
        myQ.Enqueue("!")

        ' Displays the properties and values of the Queue.
        Console.WriteLine("myQ")
        Console.WriteLine("    Count:    {0}", myQ.Count)
        Console.Write("    Values:")
        PrintValues(myQ)

    End Sub

    Public Shared Sub PrintValues(myCollection As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myCollection
            Console.Write("    {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' myQ
'     Count:    3
'     Values:    Hello    World    !

Remarques

Cette classe implémente une file d’attente en tant que tableau circulaire. Les objets stockés dans un objet Queue sont insérés à une extrémité et supprimés de l’autre.

Important

Nous vous déconseillons d’utiliser la classe pour le Queue nouveau développement. Au lieu de cela, nous vous recommandons d’utiliser la classe générique Queue<T> . Pour plus d’informations, consultez Les collections non génériques ne doivent pas être utilisées sur GitHub.

Les files d’attente et les piles sont utiles lorsque vous avez besoin d’un stockage temporaire pour des informations ; autrement dit, lorsque vous souhaiterez peut-être ignorer un élément après avoir récupéré sa valeur. Utilisez cette option Queue si vous devez accéder aux informations dans le même ordre qu’elles sont stockées dans la collection. Utilisez cette option Stack si vous avez besoin d’accéder aux informations dans l’ordre inverse. Utilisez ConcurrentQueue<T> ou ConcurrentStack<T> si vous devez accéder à la collection à partir de plusieurs threads simultanément.

Trois opérations principales peuvent être effectuées sur un Queue et ses éléments :

  • Enqueue ajoute un élément à la fin du Queue.

  • Dequeue supprime l’élément le plus ancien du début du Queue.

  • Peek retourne l’élément le plus ancien situé au début de l’élément Queue , mais ne le supprime pas du Queue.

La capacité d’un Queue est le nombre d’éléments qu’il Queue peut contenir. À mesure que les éléments sont ajoutés à un Queue, la capacité est automatiquement augmentée en fonction des besoins grâce à la réaffectation. La capacité peut être réduite en appelant TrimToSize.

Le facteur de croissance est le nombre par lequel la capacité actuelle est multipliée lorsqu’une plus grande capacité est nécessaire. Le facteur de croissance est déterminé lorsque celui-ci Queue est construit. Le facteur de croissance par défaut est 2,0. La capacité du projet Queue augmente toujours d’au moins quatre, quel que soit le facteur de croissance. Par exemple, un Queue facteur de croissance de 1,0 augmente toujours de quatre capacité lorsqu’une plus grande capacité est nécessaire.

Queue accepte null comme valeur valide et autorise les éléments en double.

Pour obtenir la version générique de cette collection, consultez System.Collections.Generic.Queue<T>

Constructeurs

Nom Description
Queue()

Initialise une nouvelle instance de la Queue classe vide, a la capacité initiale par défaut et utilise le facteur de croissance par défaut.

Queue(ICollection)

Initialise une nouvelle instance de la Queue classe qui contient des éléments copiés à partir de la collection spécifiée, a la même capacité initiale que le nombre d’éléments copiés et utilise le facteur de croissance par défaut.

Queue(Int32, Single)

Initialise une nouvelle instance de la Queue classe vide, a la capacité initiale spécifiée et utilise le facteur de croissance spécifié.

Queue(Int32)

Initialise une nouvelle instance de la Queue classe vide, a la capacité initiale spécifiée et utilise le facteur de croissance par défaut.

Propriétés

Nom Description
Count

Obtient le nombre d’éléments contenus dans le Queue.

IsSynchronized

Obtient une valeur indiquant si l’accès au Queue est synchronisé (thread safe).

SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l’accès au Queue.

Méthodes

Nom Description
Clear()

Supprime tous les objets du Queue.

Clone()

Crée une copie superficielle du Queue.

Contains(Object)

Détermine si un élément se trouve dans le Queue.

CopyTo(Array, Int32)

Copie les Queue éléments dans un index de tableau unidimensionnel Arrayexistant, en commençant à l’index de tableau spécifié.

Dequeue()

Supprime et retourne l’objet au début du Queue.

Enqueue(Object)

Ajoute un objet à la fin du Queue.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetEnumerator()

Retourne un énumérateur qui itère dans le Queue.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
Peek()

Retourne l’objet au début de l’objet Queue sans le supprimer.

Synchronized(Queue)

Retourne un nouveau Queue qui encapsule la file d’attente d’origine et est thread-safe.

ToArray()

Copie les Queue éléments dans un nouveau tableau.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
TrimToSize()

Définit la capacité sur le nombre réel d’éléments dans le Queue.

Méthodes d’extension

Nom Description
AsParallel(IEnumerable)

Active la parallélisation d’une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

Cast<TResult>(IEnumerable)

Convertit les éléments d’un IEnumerable en type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d’une IEnumerable en fonction d’un type spécifié.

S’applique à

Cohérence de thread

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'y a aucune garantie que les membres d’instance soient thread-safe.

Pour garantir la sécurité du thread, Queuetoutes les opérations doivent être effectuées via le wrapper retourné par la Synchronized(Queue) méthode.

L’énumération par le biais d’une collection n’est intrinsèquement pas une procédure thread-safe. Même lorsqu’une collection est synchronisée, d’autres threads peuvent toujours modifier la collection, ce qui provoque la levée d’une exception par l’énumérateur. Pour garantir la sécurité des threads pendant l’énumération, vous pouvez verrouiller la collection pendant toute l’énumération ou intercepter les exceptions résultant des modifications apportées par d’autres threads.

Voir aussi