NET 集合之 Queue
Queue 表示对象的先进先出集合。队列在按接收顺序存储消息方面非常有用,以便于进行顺序处理。此类将队列作为循环数组实现。存储在 Queue
中的对象在一端插入,从另一端移除。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
![](/Images/OutliningIndicators/None.gif)
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.Title = "This is a Test";
![](/Images/OutliningIndicators/InBlock.gif)
Test();
![](/Images/OutliningIndicators/InBlock.gif)
Console.ReadLine();
}
![](/Images/OutliningIndicators/InBlock.gif)
static void Test()
{
Func<string, string> select = str => str.ToUpper();
![](/Images/OutliningIndicators/InBlock.gif)
string[] names = { "a", "b", "e","e","n" };
![](/Images/OutliningIndicators/InBlock.gif)
var mynames = names.Select(select).ToArray();
![](/Images/OutliningIndicators/InBlock.gif)
var queue = new Queue();// 队列
![](/Images/OutliningIndicators/InBlock.gif)
foreach (var item in mynames)
{
queue.Enqueue(item);// 入队
}
![](/Images/OutliningIndicators/InBlock.gif)
Array.ForEach<Object>(queue.ToArray(), str => Console.WriteLine(str));
![](/Images/OutliningIndicators/InBlock.gif)
queue.Dequeue(); // 出队
![](/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("===================分隔线===================");
![](/Images/OutliningIndicators/InBlock.gif)
Array.ForEach<Object>(queue.ToArray(), str => Console.WriteLine(str));
![](/Images/OutliningIndicators/InBlock.gif)
}
}
}
![](/Images/OutliningIndicators/None.gif)
output:
A
B
E
E
N
===================分隔线===================
B
E
E
N
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](/Images/OutliningIndicators/None.gif)
output:
A
B
E
E
N
===================分隔线===================
B
E
E
N