队列表示一个先进先出的对象集合。当需要先进先出的容器访问时可使用队列(Queue
)。当在列表中添加项目时,将称为入队,当删除项目时,它被称为出队。
Queue类的方法和属性
下表列出了Queue
类的一些常用属性:
属性 | 说明 |
---|---|
Count | 获取队列中包含的元素数量。 |
下表列出了Queue
类的一些常用方法:
序号 | 方法 | 描述 |
---|---|---|
1 | public virtual void Clear(); |
清空队列,即从Queue 中删除所有元素。 |
2 | public virtual bool Contains(object obj); |
确定元素是否在队列中 |
3 | public virtual object Dequeue(); |
删除并返回队列开头的对象。 |
4 | public virtual void Enqueue(object obj); |
将对象添加到队列的末尾。 |
5 | public virtual object[] ToArray(); |
将队列复制到新数组。 |
6 | public virtual void TrimToSize(); |
将容量设置为队列中实际的元素数量。 |
例子
以下示例演示了Stack
的用法:
using System;
using System.Collections;
namespace CollectionsApplication
{
class Program
{
static void Main(string[] args)
{
Queue q = new Queue();
q.Enqueue('Y');
q.Enqueue('I');
q.Enqueue('I');
q.Enqueue('B');
q.Enqueue('A');
q.Enqueue('I');
Console.WriteLine("Current queue: ");
foreach (char c in q) Console.Write(c + " ");
Console.WriteLine();
q.Enqueue('.');
q.Enqueue('C');
q.Enqueue('O');
q.Enqueue('M');
Console.WriteLine("Current queue: ");
foreach (char c in q) Console.Write(c + " ");
Console.WriteLine();
Console.WriteLine("Removing some values ");
char ch = (char)q.Dequeue();
Console.WriteLine("The removed value: {0}", ch);
ch = (char)q.Dequeue();
Console.WriteLine("The removed value: {0}", ch);
Console.ReadKey();
}
}
}
当上述代码被编译并执行时,它产生以下结果:
Current queue:
Y I I B A I
Current queue:
Y I I B A I . C O M
Removing some values
The removed value: Y
The removed value: I