Класс Queue
Класс Queue<T> из пространства имён
System.Collections.Generic реализует очередь:
новые элементы добавляются в хвост методом
Enqueue,
а снимаются с головы методами
Dequeue
и Peek.
Тип элемента задаётся параметром T.
Синтаксис
Queue<T> queue = new Queue<T>();
Queue<T> queue = new Queue<T>(capacity);
Пример
Давайте поставим числа в хвост и снимем голову:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
Console.WriteLine(nums.Dequeue());
}
}
Результат выполнения кода:
1
Пример
Давайте обойдём очередь, снимая элементы по одному:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
while (nums.Count > 0)
{
Console.WriteLine(nums.Dequeue());
}
}
}
Результат выполнения кода:
1
2
3
Пример
Давайте создадим очередь строк и посмотрим голову без снятия:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Queue<string> items = new Queue<string>();
items.Enqueue("a");
items.Enqueue("b");
items.Enqueue("c");
Console.WriteLine(items.Peek());
Console.WriteLine(items.Count);
}
}
Результат выполнения кода:
"a"
3
Смотрите также
-
свойство
Count,
которое показывает, сколько элементов ждёт -
метод
TryDequeue,
который снимает голову без исключения -
класс
Stack<T>,
который хранит элементы в порядке LIFO -
интерфейс
IEnumerable,
который позволяет обходить очередь в foreach