Queue Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 :
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.