带有示例的 C# 队列:什么是 C# 队列以及如何使用?
C# 中的队列是什么?
队列是一个特殊情况的集合,它代表了先进先出的概念。想象一下一队人在等公交车。通常,第一个进入队列的人将是第一个进入公交车的人。同样,最后一个进入队列的人将是最后一个进入公交车的人。元素被添加到队列中,一个在另一个的顶部。
将元素添加到队列的过程是入队操作。要从队列中删除元素,可以使用出队操作。Queues C# 中的操作类似于我们之前看到的堆栈。
让我们详细了解如何在 C# 中使用队列以及 C# 中队列集合可用的操作。
队列声明
队列的声明如下所示。队列是借助队列数据类型创建的。使用“new”关键字创建队列对象。然后将该对象分配给变量 qt。
Queue qt = new Queue()
将元素添加到队列
enqueue 方法用于将元素添加到队列中。该语句的一般语法如下。
Queue.enqueue(element)
从队列中删除元素
dequeue 方法用于从队列中删除一个元素。dequeue 操作将返回队列的第一个元素。该语句的一般语法如下:
Queue.dequeue()
计数
此属性用于获取队列中的项目数。以下是此语句的一般语法。
Queue.Count
包含
此方法用于查看队列中是否存在某个元素。以下是此语句的一般语法。如果元素存在,则该语句将返回 true,否则将返回值 false。
Queue.Contains(element)
现在,让我们从代码层面看一下它是如何工作的。下面提到的所有代码都将写入我们的控制台应用程序。
代码将写入我们的 Program.cs 文件中。在下面的程序中,我们将编写代码来查看如何使用上述方法。
例如:
在此 C# 队列示例中,我们将了解如何创建队列。接下来,我们将了解如何显示队列的元素,以及如何使用 Count 和 Contain 方法。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Queue qt = new Queue(); qt.Enqueue(1); qt.Enqueue(2); qt.Enqueue(3); foreach (Object obj in qt) { Console.WriteLine(obj); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The number of elements in the Queue " + qt.Count); Console.WriteLine("Does the Queue contain " + qt.Contains(3)); Console.ReadKey(); } } }
代码说明
- 第一步是声明队列。这里我们将 qt 声明为一个变量,用于保存队列的元素。
- 接下来,我们向队列添加 3 个元素。每个元素都通过“enqueue”方法添加。
- 现在需要注意的一点是,队列中的元素不能像 数组列表。我们需要使用不同的方法来显示队列的元素。下面介绍如何显示队列的元素。
- 我们首先声明一个名为 obj 的临时变量。这将用于保存队列的每个元素。
- 然后我们使用 foreach 语句遍历队列的每个元素。
- 对于每个队列元素,其值被分配给 obj 变量。
- 然后我们使用 Console.Writeline 命令将该值显示到控制台。
- 我们使用“Count”属性来获取队列中的项目数。此属性将返回一个数字。然后我们将该值显示到控制台。
- 然后我们使用“Contains”方法来查看队列中是否存在值 3。这将返回 true 或 false 值。然后我们将此返回值显示到控制台。
如果正确输入上述代码并运行程序,将显示以下输出。
输出
从输出中,我们可以清楚地看到队列的元素被显示出来。请注意,与“堆“queue” 中的“第一个被推送到队列的元素”会首先显示。输出中还会显示队列元素的数量。此外,还会显示 True 值,表示队列上定义了值 3。
C# 队列出队
现在让我们看看删除功能。我们将看到从队列中删除最后一个元素所需的代码。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Queue qt = new Queue(); qt.Enqueue(1); qt.Enqueue(2); qt.Enqueue(3); qt.Dequeue(); foreach (Object obj in qt) { Console.WriteLine(obj); } Console.ReadKey(); } } }
代码说明
- 这里我们只调用“dequeue”方法,该方法用于从队列中删除一个元素。此方法将删除队列的第一个元素。
如果正确输入上述代码并运行程序,将显示以下输出。
输出:
从输出中,我们可以看到添加到队列的第一个元素(即元素 1)已从队列中删除。
总结
队列基于先进先出的概念。将元素添加到队列的操作称为入队操作。从队列中删除元素的操作称为出队操作。