C# 中的队列
队列是一个对象的集合,它以 FIFO(先进先出)的形式表示,先添加的元素先出现,在 C# 中,队列集合类存在于命名空间 System.Collection 中。队列以 FIFO 顺序存储元素,我们可以按照先进先出的方式访问元素。队列与堆栈集合正好相反,其中堆栈是 LIFO(后进先出)。 Queue 集合允许存在大量空值和重复值。队列使用两个方法,称为 Enqueue() 和 Dequeue(),分别用于添加和检索值。
语法:
队列是使用称为队列的数据类型创建的。这里“new”关键字用于创建队列的对象。在队列集合中,我们使用 Enqueue 方法添加项目,使用 Dequeue 方法删除项目。
Queue QueueObject = new Queue() // creation of Queue
QueueObject.Enqueue(element) // to add element to Queue
QueueObject.Dequeue() //to remove element to Queue
C# 中的队列如何工作?
队列以 FIFO(先进先出)的形式出现,它是对象的集合,当我们需要以先进先出的方式访问项目时,会使用此过程。该队列是非通用的,它使用 System.Collections 命名空间中定义的集合类型。一般来说,当我们以队列集合中存储的方式使用信息时,队列很有用。
Queue 通过 IEnumerable、ICloneable、ICollection 接口实现。对于引用类型,它接受 null 有效值。在队列集合中,添加项目时,我们使用 Enqueue 方法;删除项目时,我们使用 Dequeue 方法。添加项目到队列时,总容量会自动增加所需的内存。
示例:
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 !"); } } }
在上面的程序中,我们将Queue声明为_objQueue来保存Queue的项目。为了添加新元素,我们使用 Enqueue() 方法,为了删除元素,我们使用 Dequeue() 方法。 Count属性用于获取队列中元素的总数,该属性的返回值是一个数字。另一个方法 Contains() 用于检查给定值/元素是否存在,它返回 bool 值 true 或 false。 Peek() 用于获取队列集合中最上面的值。
输出:
从上面的输出来看,显示了 Queue 的项目。首先,它使用 Count() 方法显示队列中存在的元素总数,然后使用 Peek() 方法显示最上面的元素。通过使用 Contains() 方法,它检查队列集合中是否存在该元素。
构造函数
在 Queue 类中,它由用于创建队列的构造函数组成。
- Queue():构造函数 Queue() 用于创建队列类的实例,它有助于使用默认增长因子。
- Queue(ICollection): 此构造函数用于创建队列的实例,它包含从指定集合复制的项目,并且具有与复制的项目数量相同的容量。它还使用默认的初始生长因子。
- Queue(Int32):此构造函数用于创建一个空的 Queue 类实例,该实例指定了初始容量,并使用默认的增长因子。
- Queue(Int32, Single):此构造函数用于创建一个空的 Queue 类实例,该实例指定了初始容量,并使用默认的增长因子。
C# 方法中的队列函数
让我们看看以下函数列表,其中是 Queue 类的常用方法 -
- Enqueue():Enqueue方法用于在Queue中添加元素时使用,它是一个非泛型集合,因此我们可以在该方法中添加任何数据类型的元素。该方法使用的签名是 void Enqueue(object obj)
- Dequeue():Dequeue 方法用于访问队列,用于检索队列中最顶层的元素。通过用于删除队列的 FIFO 方法 Dequeue 及其返回队列集合中的第一个元素的结果,仅当队列的总计数始终大于零时才调用 Dequeue(),否则会引发异常。该方法使用的签名是 object Dequeue()
- Peek(): 此方法将始终返回队列集合中的第一个元素,而不从队列中删除。如果调用空队列集合,它会抛出异常。
- 该方法使用的签名是object Peek()。
- Clear():该方法用于从队列集合中删除对象。该方法使用的签名是 void Clear()。
- Contains():该方法用于检查Queue集合中是否存在某个元素。该方法使用的签名是 bool Contains(object obj).
- Clone():Clone() 方法用于创建队列集合的浅表副本。
- Equals(Object):此方法用于检查特定对象是否等于当前对象。
- 同步(队列):此方法返回一个包含原始队列的新队列。
- TrimToSize(): 该方法用于设置队列集合中实际项目数的容量。
结论
在这篇文章中,我们了解了C#中Queue()的用法,它基于先进先出的概念,我们分别使用Enqueue()和Dequeue()方法来添加和删除队列。
以上是C# 中的队列的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

使用 C# 的 Active Directory 指南。在这里,我们讨论 Active Directory 在 C# 中的介绍和工作原理以及语法和示例。

多线程和异步的区别在于,多线程同时执行多个线程,而异步在不阻塞当前线程的情况下执行操作。多线程用于计算密集型任务,而异步用于用户交互操作。多线程的优势是提高计算性能,异步的优势是不阻塞 UI 线程。选择多线程还是异步取决于任务性质:计算密集型任务使用多线程,与外部资源交互且需要保持 UI 响应的任务使用异步。

可以采用多种方法修改 XML 格式:使用文本编辑器(如 Notepad )进行手工编辑;使用在线或桌面 XML 格式化工具(如 XMLbeautifier)进行自动格式化;使用 XML 转换工具(如 XSLT)定义转换规则;或者使用编程语言(如 Python)进行解析和操作。修改时需谨慎,并备份原始文件。
