Maison  >  Article  >  développement back-end  >  File d'attente en C#

File d'attente en C#

WBOY
WBOYoriginal
2024-09-03 15:30:43731parcourir

Une file d'attente est une collection d'objets qu'elle représente sous la forme d'un ordre FIFO (First-In-First-Out), l'élément qui est ajouté en premier sortira en premier, dans la classe de collection C# Queue présente dans l'espace de noms System.Collection . La file d'attente stocke l'élément dans l'ordre FIFO dans lequel nous pouvons récupérer selon le principe premier entré, premier sorti pour accéder aux éléments. Une file d'attente est exactement à l'opposé de Stack Collection, où Stack est LIFO (Last-In-First-Out). La collection de Queue autorise de nombreuses valeurs nulles et en double. Queue utilise deux méthodes appelées Enqueue() et Dequeue() qui sont utilisées respectivement pour ajouter et récupérer des valeurs.

Syntaxe :

La file d'attente est créée à l'aide du type de données appelé Queue. Ici, le mot-clé « new » est utilisé pour créer un objet de la file d'attente. Dans la collection de files d'attente pour ajouter un élément, nous utilisons la méthode Enqueue et pour supprimer un élément, nous utilisons la méthode Dequeue.

Queue QueueObject = new Queue() // creation of Queue
QueueObject.Enqueue(element) // to add element to Queue
QueueObject.Dequeue() //to remove element to Queue

Comment fonctionne la file d'attente en C# ?

File d'attente présente sous forme de FIFO (First-In-First-Out) c'est une collection d'objets, ce processus est utilisé lorsque nous avons besoin d'accéder en premier entré, premier sorti aux éléments. La file d'attente n'est pas générique et utilise le type de collection défini dans l'espace de noms System.Collections. En général, une file d'attente est utile lorsque nous utilisons les informations de la manière dont nous les avons stockées dans la collection de files d'attente.

La file d'attente s'implémente via les interfaces appelées IEnumerable, ICloneable, ICollection. Pour les types référence, il accepte les valeurs nulles valides. Dans la collecte de file d'attente pour ajouter un élément, nous utilisons la méthode Enqueue et pour supprimer un élément, nous utilisons la méthode Dequeue lors de l'ajout d'un élément à la file d'attente, la capacité totale est automatiquement augmentée pour la mémoire interne requise.

Exemple :

using System;
using System.Collections;
public class QueueProgram {
static public void Main()
{
// to create a queue - using Queue class
Queue _objQueue = new Queue();
// to add an elements in Queue - using Enqueue() method
_objQueue.Enqueue("DotNet");
_objQueue.Enqueue("SQL");
_objQueue.Enqueue("Java");
_objQueue.Enqueue("PHP");
_objQueue.Enqueue("Android");
Console.WriteLine("Working Process of Queue\n");
Console.WriteLine("Number of Elements Present in Object(_objQueue)   : {0}", _objQueue.Count);
// to obtain the topmost element of _objQueue - using Dequeue method
Console.WriteLine("\nTo Get the topmost element in Queue" + " is            : {0}", _objQueue.Dequeue());
Console.WriteLine("\nNumber of Elements Present in Object(_objQueue)   : {0}", _objQueue.Count);
// to obtain the topmost element of _objQueue - using Peek method
Console.WriteLine("\nTo Get the topmost element in Queue is            : {0}", _objQueue.Peek());
Console.WriteLine("\nNumber of Elements Present in Object(_objQueue)   : {0}", _objQueue.Count);
// to check hether the element is present in the Queue
if (_objQueue.Contains("SQL") == true)
{
Console.WriteLine("\nElement is Present !");
}
else
{
Console.WriteLine("\nElement is not Present !");
}
}
}

Dans le programme ci-dessus, nous déclarons la file d'attente comme _ objQueue pour contenir les éléments de la file d'attente. Pour ajouter le nouvel élément, nous utilisons la méthode Enqueue() et pour supprimer l'élément, nous utilisons la méthode Dequeue(). La propriété Count est utilisée pour obtenir le nombre total d'éléments dans la file d'attente, la valeur de retour de cette propriété est un nombre. Une autre méthode Contains() est utilisée pour vérifier si la valeur/l'élément donné est présent, elle renvoie la valeur booléenne vraie ou fausse. Peek() est utilisé pour obtenir la valeur la plus élevée dans la collection de files d'attente.

Sortie :

File d'attente en C#

D'après le résultat ci-dessus, cela montre que les éléments de la file d'attente sont affichés. Tout d’abord, il affiche le nombre total d’éléments présents dans la file d’attente à l’aide de la méthode Count(), puis il affiche l’élément le plus haut à l’aide de la méthode Peek(). En utilisant la méthode Contains(), il vérifie si l'élément est présent dans la collection de files d'attente.

Constructeurs

Dans la classe Queue, il se compose de constructeurs utilisés pour créer une file d'attente.

  • Queue() : Le constructeur Queue() est utilisé pour créer l'instance de la classe de file d'attente, il aide à l'utilisation du facteur de croissance par défaut.
  • Queue(ICollection) : Ce constructeur est utilisé pour créer une instance de la file d'attente et il contient les éléments copiés de la collection spécifiée et ayant la même capacité que le nombre d'éléments copiés. Il utilise également le facteur de croissance initial par défaut.
  • Queue(Int32) : Ce constructeur est utilisé pour créer une instance de classe Queue qui est vide et dont la capacité initiale est spécifiée, et utilise le facteur de croissance par défaut.
  • Queue(Int32, Single) : Ce constructeur est utilisé pour créer une instance de classe Queue qui est vide et dont la capacité initiale est spécifiée, et utilise le facteur de croissance par défaut.

Fonctions de file d'attente dans la méthode C#

Voyons la liste de fonctions suivante qui sont les méthodes couramment utilisées de la classe Queue −

  • Enqueue() : La méthode Enqueue est utilisée lors de l'ajout d'un élément dans la file d'attente, c'est une collection non générique donc nous pouvons ajouter un élément de n'importe quel type de données dans cette méthode. La signature utilisée pour cette méthode est void Enqueue(object obj)
  • Dequeue() : La méthode Dequeue est destinée à la file d'attente d'accès qui est utilisée pour récupérer l'élément le plus haut de la file d'attente. Par l'approche FIFO utilisée par Dequeue pour supprimer et sa résultante qui renvoie le premier élément de la collection de files d'attente, Dequeue() est appelée uniquement lorsque le nombre total de la file d'attente est toujours supérieur à zéro, sinon il lève une exception. La signature utilisée pour cette méthode est l'objet Dequeue()
  • Peek() : Cette méthode renverra toujours le premier élément de la collection de files d'attente sans le supprimer de la file d'attente. Il lève une exception si la collection de files d'attente vides est appelée.
  • La signature utilisée pour cette méthode est l'objet Peek().
  • Clear() : Cette méthode est utilisée pour supprimer des objets de la collection de files d'attente. La signature utilisée pour cette méthode est void Clear().
  • Contains() : Cette méthode est utilisée pour vérifier si un élément existe dans la collection de Queue. La signature utilisée pour cette méthode est bool Contains(object obj).
  • Clone() : La méthode Clone() est utilisée pour créer une copie superficielle de la collection de files d'attente.
  • Equals(Object) : Cette méthode est utilisée pour vérifier si l'objet particulier est égal à l'objet actuel.
  • Synchronisé (Queue) : Cette méthode renvoie une nouvelle file d'attente qui renferme la file d'attente d'origine.
  • TrimToSize() : Cette méthode est utilisée pour définir la capacité à laquelle le nombre réel d'éléments dans la collection de files d'attente.

Conclusion

Dans cet article, nous avons découvert l'utilisation de Queue() en C#, elle est basée sur le concept FIFO, pour ajouter et supprimer la file d'attente en utilisant respectivement les méthodes Enqueue() et Dequeue().

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:C# utilisant statiqueArticle suivant:C# utilisant statique