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)文章
教你創(chuàng)建一個(gè)帶診斷工具的.NET鏡像
本文編寫的初衷是因?yàn)樵谌豪镉泻芏嘈』锇橛龅缴a(chǎn)環(huán)境性能問題的時(shí)候,.NET的runtime鏡像中沒有帶一些工具,安裝和使用起來很麻煩,所以分享一些我們公司內(nèi)部一些技巧,對(duì).NET鏡像帶診斷工具相關(guān)知識(shí)感興趣的朋友一起看看吧2022-07-07C#控制臺(tái)輸出進(jìn)度和百分比的實(shí)例代碼
C#控制臺(tái)輸出進(jìn)度和百分比的實(shí)例代碼,需要的朋友可以參考一下2013-03-03C#難點(diǎn)逐個(gè)擊破(3):params數(shù)組參數(shù)
注意,這里的paras全稱是array parameter,也就是數(shù)組參數(shù)。 paras類型參數(shù)主要用于在對(duì)數(shù)組長度未知(可變)的情況下進(jìn)行函數(shù)聲明。2010-02-02詳解C# parallel中并行計(jì)算的四種寫法總結(jié)
在C#中,parallel關(guān)鍵字可以用于并行計(jì)算。本文為大家總結(jié)了四種C# parallel并行計(jì)算的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-11-11C#讀取QQ純真IP數(shù)據(jù)庫QQWry.Dat的代碼
QQ純真IP庫算是IP地址收集較為全的一個(gè)IP庫,對(duì)于IP查詢來說這個(gè)是不錯(cuò)的選擇。下面是如何查詢純真IP庫的一個(gè)類,使用C#代碼。2007-03-03C#調(diào)用執(zhí)行命令行窗口(CMD)的方法與技巧
在 C# 的編程世界里,我們常常會(huì)遇到需要與操作系統(tǒng)底層進(jìn)行交互的場(chǎng)景,這時(shí),調(diào)用命令行窗口(CMD)就成為了一個(gè)強(qiáng)大的工具,通過 C# 調(diào)用 CMD 都能為我們提供極大的便利,極大地拓展了 C# 應(yīng)用程序的功能邊界,本文介紹了C#中調(diào)用執(zhí)行CMD的方法與技巧2025-01-01Unity實(shí)現(xiàn)旋轉(zhuǎn)扭曲圖像特效
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)旋轉(zhuǎn)扭曲圖像特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02