English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Queue est un type de collection spécial qui stocke les éléments de manière FIFO (first in, first out), tout à fait opposé à la collection Stack <T>. Il contient les éléments dans l'ordre d'ajout. C# inclut la Queue<T> générique et la Queue non générique. Il est recommandé d'utiliser la Queue<T> générique.
Queue<T> est une collection FIFO (first in, first out).
il se trouve sous l'espace de noms System.Collection.Generic.
Queue<T> peut contenir des éléments de types spécifiés. Il fournit une vérification de type à la compilation et ne réalise pas/débogage, car il est générique.
Il est possible d'ajouter des éléments à l'aide de la méthode Enqueue(). Il est impossible d'utiliser l'initialisation de collection-syntaxe initializer)
Il est possible de récupérer des éléments à l'aide des méthodes Dequeue() et Peek(). Il ne prend pas en charge les indexeurs.
L'image suivante explique le jeu de files Queue :
Vous pouvez créer des objets en spécifiant le type des éléments stockés par Queue<T> via les paramètres de type. Les exemples suivants utilisent la méthode Enqueue() pour créer et ajouter des éléments dans Queue<T>. La collection Queue permet des valeurs null (pour les types de référence) et des valeurs répétées.
Queue<int> callerIds = new Queue<int>(); callerIds.Enqueue(1); callerIds.Enqueue(2); callerIds.Enqueue(3); callerIds.Enqueue(4); foreach(var id in callerIds) Console.Write(id); //Imprimer1234
Propriété | Utilisation |
---|---|
Compte | Retourne le nombre total d'éléments de la file. |
Méthode | Utilisation |
---|---|
Enqueue(T) | Ajouter un élément à la file. |
Dequeue | Retourner un élément du début de la file et le supprimer. |
Peek(T) | Retourner le premier élément de la file sans le supprimer. |
Contains(T) | Vérifier si un élément est dans la file |
Clear() | Supprimer tous les éléments de la file. |
Les méthodes Dequeue() et Peek() sont utilisées pour récupérer le premier élément du jeu de files. Dequeue() supprime et retourne le premier élément d'une file, car la file stocke les éléments dans un ordre FIFO. Appeler la méthode Dequeue() sur une file vide déclenche une exception InvalidOperation. Par conséquent, vérifiez toujours si le nombre total de la file est supérieur à zéro avant d'appeler la file.
Queue<string> strQ = new Queue<string>(); strQ.Enqueue("H"); strQ.Enqueue("e"); strQ.Enqueue("l"); strQ.Enqueue("l"); strQ.Enqueue("o"); Console.WriteLine("Nombre total d'éléments: {0}", strQ.Count); //Sortie 5 while(strQ.Count > 0){ Console.WriteLine(strQ.Dequeue()); //Sortie Hello } Console.WriteLine("Nombre total d'éléments: {0}", strQ.Count); //Sortie 0
La méthode Peek() retourne toujours le premier élément du jeu de files sans le supprimer. Appeler cette méthode sur une file vide déclenche une exception d'exécution InvalidOperationException.
Queue<string> strQ = new Queue<string>(); strQ.Enqueue("H"); strQ.Enqueue("e"); strQ.Enqueue("l"); strQ.Enqueue("l"); strQ.Enqueue("o"); Console.WriteLine("Nombre total d'éléments: {0}", strQ.Count); //Sortie 5 if(strQ.Count > 0){ Console.WriteLine(strQ.Peek()); //Sortie H Console.WriteLine(strQ.Peek()); //Sortie H } Console.WriteLine("Nombre total d'éléments: {0}", strQ.Count); //Sortie 0
La méthode Contains() vérifie l'existence d'un élément dans la file. Si l'élément spécifié existe, elle renvoie true, sinon elle renvoie false.
Signature de Contains() :
bool Contains(object obj);
Queue<int> callerIds = new Queue<int>(); callerIds.Enqueue(1); callerIds.Enqueue(2); callerIds.Enqueue(3); callerIds.Enqueue(4); callerIds.Contains(2); //true callerIds.Contains(10); //false