目录
C# 中的队列如何工作?
构造函数
C# 方法中的队列函数
结论
首页 后端开发 C#.Net教程 C# 中的队列

C# 中的队列

Sep 03, 2024 pm 03:30 PM
c# c# tutorial

队列是一个对象的集合,它以 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() 用于获取队列集合中最上面的值。

输出:

C# 中的队列

从上面的输出来看,显示了 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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1277
29
C# 教程
1257
24
使用 C# 的活动目录 使用 C# 的活动目录 Sep 03, 2024 pm 03:33 PM

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

C# 中的随机数生成器 C# 中的随机数生成器 Sep 03, 2024 pm 03:34 PM

C# 随机数生成器指南。在这里,我们讨论随机数生成器的工作原理、伪随机数和安全数的概念。

C# 数据网格视图 C# 数据网格视图 Sep 03, 2024 pm 03:32 PM

C# 数据网格视图指南。在这里,我们讨论如何从 SQL 数据库或 Excel 文件加载和导出数据网格视图的示例。

C# 中的阶乘 C# 中的阶乘 Sep 03, 2024 pm 03:34 PM

C# 阶乘指南。这里我们讨论 C# 中阶乘的介绍以及不同的示例和代码实现。

c#多线程和异步的区别 c#多线程和异步的区别 Apr 03, 2025 pm 02:57 PM

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

C# 中的模式 C# 中的模式 Sep 03, 2024 pm 03:33 PM

C# 模式指南。在这里,我们讨论 C# 中模式的介绍和前 3 种类型,以及其示例和代码实现。

C# 中的质数 C# 中的质数 Sep 03, 2024 pm 03:35 PM

C# 素数指南。这里我们讨论c#中素数的介绍和示例以及代码实现。

xml怎么改格式 xml怎么改格式 Apr 03, 2025 am 08:42 AM

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

See all articles