首页 > 技术文章 > c# Queue的用法

suqq 2020-07-03 16:58 原文

Queue队列就是先进先出。它并没有实现 IList,ICollection。所以它不能按索引访问元素,不能使用Add和Remove。下面是 Queue的一些方法和属性

  Enqueue():在队列的末端添加元素

  Dequeue():在队列的头部读取和删除一个元素,注意,这里读取元素的同时也删除了这个元素。如果队列中不再有任何元素。就抛出异常

  Peek():在队列的头读取一个元素,但是不删除它

  Count:返回队列中的元素个数

  TrimExcess():重新设置队列的容量,因为调用Dequeue方法读取删除元素后不会重新设置队列的容量。

  Contains():确定某个元素是否在队列中

  CopyTo():把元素队列复制到一个已有的数组中

  ToArray():返回一个包含元素的新数组

 

private void button_测试Queue_Click(object sender, EventArgs e)
{
 string[] cars = new string[]{"宝马","奔驰","奥迪","东风","劳斯莱斯"};
 Console.WriteLine("开始入队列");
 Queue<string> que = new Queue<string>();
 foreach (string str in cars)
 {
  que.Enqueue(str);
  Console.WriteLine("入队列-{0}",str);
 }
 Console.WriteLine();
 //打印队列
 PrintQueue(que);
 Console.WriteLine();
 Console.WriteLine("开始出队列");
 while (que.Count > 0)
 {
  string str = que.Dequeue();
  Console.WriteLine("出队列-{0}", str);
 }
}
private void PrintQueue(Queue<string> list)
{
 Console.WriteLine("开始打印队列");
 foreach (string str in list)
 {
  Console.WriteLine(str);
 }
}

 

推荐阅读