C#使用Queue<T>進(jìn)行隊(duì)列設(shè)計(jì)
一、涉及到的知識(shí)點(diǎn)
1.Queue類
C#中確實(shí)提供了隊(duì)列類Queue。隊(duì)列是一種先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)和操作對(duì)象的有序集合。在C#中,可以使用System.Collections.Generic命名空間中的Queue<T>類來實(shí)現(xiàn)隊(duì)列。隊(duì)列在按接收順序存儲(chǔ)消息方面非常有用,以便于進(jìn)行順序處理。Queue類將隊(duì)列作為循環(huán)數(shù)組實(shí)現(xiàn),存儲(chǔ)在Queue類中的對(duì)象在一端插入,從另一端移除。
// 創(chuàng)建一個(gè)新的Queue<int>實(shí)例 Queue<int> queue = new Queue<int>(); //或 // 創(chuàng)建一個(gè)新的Queue<int>實(shí)例 Queue<int> myQueue = new();
2.Queue<T>類的方法和屬性
Queue<T>類提供了許多方法和屬性,用于處理隊(duì)列中的元素。以下是一些常用的方法:
- Enqueue(T item):將元素添加到隊(duì)列的末尾。
- Dequeue():從隊(duì)列的開頭移除并返回元素。
- Peek():查看隊(duì)列開頭的元素,但不將其移除。
- Clear():移除隊(duì)列中的所有元素。
- Contains(T item):檢查隊(duì)列是否包含特定的元素。
- CopyTo(T[] array, int arrayIndex):將隊(duì)列中的元素復(fù)制到一個(gè)數(shù)組中。
- Count:獲取隊(duì)列中元素的數(shù)量。
二、使用C# Queue類的實(shí)例
這個(gè)實(shí)例演示了如何創(chuàng)建一個(gè)Queue<int>實(shí)例,向其中添加元素,查看元素,從隊(duì)列中移除元素,再次查看元素,向隊(duì)列中添加新元素,查看隊(duì)列開頭的元素,清空隊(duì)列,以及檢查隊(duì)列是否為空。
// 使用C# Queue類的實(shí)例
namespace _134_1
{
class Program
{
static void Main(string[] args)
{
ArgumentNullException.ThrowIfNull(args);
// 創(chuàng)建一個(gè)新的Queue<int>實(shí)例
Queue<int> myQueue = new();
// 向隊(duì)列中添加一些元素
myQueue.Enqueue(1);
myQueue.Enqueue(2);
myQueue.Enqueue(3);
// 查看隊(duì)列中的元素
Console.WriteLine("隊(duì)列中的元素:");
foreach (int element in myQueue)
{
Console.Write(element + " ");
}
// 從隊(duì)列中移除并返回第一個(gè)元素
int dequeuedElement = myQueue.Dequeue();
Console.WriteLine("\n已移除的元素:{0}", dequeuedElement);
// 再次查看隊(duì)列中的元素
Console.WriteLine("\n隊(duì)列中的元素(更新后):");
foreach (int element in myQueue)
{
Console.Write(element + " ");
}
// 添加一個(gè)新元素到隊(duì)列
myQueue.Enqueue(4);
// 再次查看隊(duì)列中的元素
Console.WriteLine("\n隊(duì)列中的元素(更新后):");
foreach (int element in myQueue)
{
Console.Write(element + " ");
}
// 查看隊(duì)列開頭的元素
Console.WriteLine("\n隊(duì)列開頭的元素:{0}", myQueue.Peek());
// 清空隊(duì)列
myQueue.Clear();
// 查看隊(duì)列是否為空
Console.WriteLine("\n隊(duì)列是否為空:{0}", myQueue.Count == 0);
}
}
}
//運(yùn)行結(jié)果:
/*
隊(duì)列中的元素:
1 2 3
已移除的元素:1
隊(duì)列中的元素(更新后):
2 3
隊(duì)列中的元素(更新后):
2 3 4
隊(duì)列開頭的元素:2
隊(duì)列是否為空:True
*/到此這篇關(guān)于C#使用Queue<T>進(jìn)行隊(duì)列設(shè)計(jì)的文章就介紹到這了,更多相關(guān)C# Queue<T>隊(duì)列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#編程中使用設(shè)計(jì)模式中的原型模式的實(shí)例講解
這篇文章主要介紹了C#編程中使用設(shè)計(jì)模式中的原型模式的實(shí)例講解,原型模式創(chuàng)建新對(duì)象方便快捷,而且可在運(yùn)行時(shí)根據(jù)需要通過克隆來添加和去除他們,也可在程序運(yùn)行是根據(jù)情況來修改類內(nèi)部的數(shù)據(jù),需要的朋友可以參考下2016-02-02
通過C#和IronOcr實(shí)現(xiàn)圖片文字自動(dòng)識(shí)別(OCR)和提取
所謂的圖片文字識(shí)別,簡(jiǎn)單地說,就是識(shí)別并提取圖片中的文字,英文簡(jiǎn)稱為OCR,近年來,這項(xiàng)技術(shù)得到了廣泛應(yīng)用,如果有一個(gè)圖片文字識(shí)別提取工具,點(diǎn)擊一下,就能將圖片上的文字直接提取出來,這該有多方便,本文就來聊聊如何使用C#實(shí)現(xiàn)OCR功能,需要的朋友可以參考下2025-11-11
C# 操作PostgreSQL 數(shù)據(jù)庫(kù)的示例代碼
本篇文章主要介紹了C# 操作PostgreSQL 數(shù)據(jù)庫(kù)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
C#?Random類隨機(jī)函數(shù)實(shí)例詳解
這篇文章主要為大家介紹了C#?Random類隨機(jī)函數(shù)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Unity2021發(fā)布WebGL與網(wǎng)頁(yè)交互問題的解決
本文主要介紹了Unity2021發(fā)布WebGL與網(wǎng)頁(yè)交互問題的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05

