{"id":2632,"date":"2023-07-08T21:22:31","date_gmt":"2023-07-08T14:22:31","guid":{"rendered":"https:\/\/csharptutorial.net\/?page_id=2632"},"modified":"2023-07-08T21:37:57","modified_gmt":"2023-07-08T14:37:57","slug":"csharp-queue","status":"publish","type":"page","link":"https:\/\/www.csharptutorial.net\/csharp-collections\/csharp-queue\/","title":{"rendered":"C# Queue&lt;T&gt;"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn how to use the C# Queue&lt;T&gt; class to manage a collection of objects based on the first-in, first-out (FIFO) order.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction to the C# Queue&lt;T&gt; class<\/h2>\n\n\n\n<p>Imagine you&#8217;re organizing a tech conference. At this conference, attendees need to check in at the registration desk. To make the check-in process more smooth and efficient, you decide to implement a check-in queue.<\/p>\n\n\n\n<p>As attendees arrive, they join the queue, forming a line. The first person to arrive is at the front of the queue, and the last person to arrive is at the rear.<\/p>\n\n\n\n<p>The registration desk personnel process the attendees in a first-in, first-out ( FIFO) order. They start with the person at the front of the queue, verify their identification, and provide them with their conference badges.<\/p>\n\n\n\n<p>As each person is checked in and receives their badge, they move to the front of the line and exit the queue. The next person in the queue then moves up to the front and proceeds with the check-in process.<\/p>\n\n\n\n<p>This continues until all attendees have been checked in, and the queue becomes empty. <\/p>\n\n\n\n<p>C# <code>Queue&lt;T&gt;<\/code> class works the same as the queue of attendees. It has two main methods:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Enqueue()<\/code> &#8211; adds an object to the end of the queue.<\/li>\n\n\n\n<li><code>Dequeue()<\/code> &#8211; removes and returns an object at the beginning of the queue.<\/li>\n<\/ul>\n\n\n\n<p>The <code>Queue&lt;T&gt;<\/code> class also has the <code>Count<\/code> property that returns the number of elements of the queue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C# Queue&lt;T&gt; class example<\/h2>\n\n\n\n<p>The following example illustrates how to use the C# <code>Queue&lt;T&gt;<\/code> class to manage a queue of attendees:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">static<\/span> System.Console;\n\n<span class=\"hljs-keyword\">var<\/span> attendees = <span class=\"hljs-keyword\">new<\/span> List&lt;<span class=\"hljs-keyword\">string<\/span>&gt;{\n    <span class=\"hljs-string\">\"John\"<\/span>,\n    <span class=\"hljs-string\">\"Jane\"<\/span>,\n    <span class=\"hljs-string\">\"Bob\"<\/span>, \n    <span class=\"hljs-string\">\"Alice\"<\/span>\n};\n\n<span class=\"hljs-keyword\">var<\/span> queue = <span class=\"hljs-keyword\">new<\/span> Queue&lt;<span class=\"hljs-keyword\">string<\/span>&gt;();\n\n<span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-keyword\">var<\/span> attendee <span class=\"hljs-keyword\">in<\/span> attendees)\n{\n    queue.Enqueue(attendee);\n    WriteLine(<span class=\"hljs-string\">$\"<span class=\"hljs-subst\">{attendee}<\/span> has arrived.\"<\/span>);\n}\n\nWriteLine(<span class=\"hljs-string\">$\"There are <span class=\"hljs-subst\">{queue.Count}<\/span> attendees in the queue\"<\/span>);\n\n\n<span class=\"hljs-keyword\">while<\/span>(queue.Count &gt; <span class=\"hljs-number\">0<\/span>)\n{\n    <span class=\"hljs-keyword\">var<\/span> attendee = queue.Dequeue();\n    WriteLine(<span class=\"hljs-string\">$\"Checking in <span class=\"hljs-subst\">{attendee}<\/span> ...\"<\/span>);\n}\n\nWriteLine(<span class=\"hljs-string\">$\"There are <span class=\"hljs-subst\">{queue.Count}<\/span> attendees in the queue\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">John has arrived.\nJane has arrived.\nBob has arrived.\nAlice has arrived.\nThere are 4 attendees in the queue\nChecking in John ...\nChecking in Jane ...\nChecking in Bob ...\nChecking in Alice ...\nThere are 0 attendees in the queue<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>How it works.<\/p>\n\n\n\n<p>First, create a list of four attendees:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> attendees = <span class=\"hljs-keyword\">new<\/span> List&lt;<span class=\"hljs-keyword\">string<\/span>&gt;{\n    <span class=\"hljs-string\">\"John\"<\/span>,\n    <span class=\"hljs-string\">\"Jane\"<\/span>,\n    <span class=\"hljs-string\">\"Bob\"<\/span>, \n    <span class=\"hljs-string\">\"Alice\"<\/span>\n};<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, create a queue of strings to manage the attendees:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> queue = <span class=\"hljs-keyword\">new<\/span> Queue&lt;<span class=\"hljs-keyword\">string<\/span>&gt;();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Third, iterate the <code>attendees<\/code> list and enqueue each of them using the <code>Enqueue()<\/code> method:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-keyword\">var<\/span> attendee <span class=\"hljs-keyword\">in<\/span> attendees)\n{\n    queue.Enqueue(attendee);\n    WriteLine(<span class=\"hljs-string\">$\"<span class=\"hljs-subst\">{attendee}<\/span> has arrived.\"<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Fourth, get the number of attendees using the <code>Count<\/code> property and display it to the console:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">WriteLine(<span class=\"hljs-string\">$\"There are <span class=\"hljs-subst\">{queue.Count}<\/span> attendees in the queue\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Fifth, remove each attendee until the queue is empty using the <code>Dequeue()<\/code> method:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">while<\/span>(queue.Count &gt; <span class=\"hljs-number\">0<\/span>)\n{\n    <span class=\"hljs-keyword\">var<\/span> attendee = queue.Dequeue();\n    WriteLine(<span class=\"hljs-string\">$\"Checking in <span class=\"hljs-subst\">{attendee}<\/span> ...\"<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Finally, show the number of attendees in the queue to the console:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">WriteLine(<span class=\"hljs-string\">$\"There are <span class=\"hljs-subst\">{queue.Count}<\/span> attendees in the queue\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use C# <code>Queue&lt;T&gt;<\/code> class to manage a collection of objects in the first-in, first-out (FIFO) order.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful ?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"2632\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-collections\/csharp-queue\/\"\n\t\t\t\tdata-post-title=\"C# Queue&lt;T&gt;\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"2632\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-collections\/csharp-queue\/\"\n\t\t\t\tdata-post-title=\"C# Queue&lt;T&gt;\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summary: in this tutorial, you will learn how to use the C# Queue&lt;T&gt; class to manage a collection of objects based on the first-in, first-out (FIFO) order. Introduction to the C# Queue&lt;T&gt; class Imagine you&#8217;re organizing a tech conference. At this conference, attendees need to check in at the registration desk. To make the check-in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2610,"menu_order":72,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2632","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/2632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/comments?post=2632"}],"version-history":[{"count":5,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/2632\/revisions"}],"predecessor-version":[{"id":2640,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/2632\/revisions\/2640"}],"up":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/2610"}],"wp:attachment":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/media?parent=2632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}