Метод TryDequeue
Метод TryDequeue класса
PriorityQueue<TElement, TPriority>
при непустой очереди удаляет элемент с
наилучшим приоритетом, записывает его в
out TElement result и возвращает true.
Иначе возвращает false без исключения.
Синтаксис
bool ok = pq.TryDequeue(out TElement result);
Пример
Давайте снимем элемент через TryDequeue:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
PriorityQueue<string, int> pq =
new PriorityQueue<string, int>();
pq.Enqueue("c", 3);
pq.Enqueue("a", 1);
if (pq.TryDequeue(out string res))
{
Console.WriteLine(res);
}
}
}
Результат выполнения кода:
"a"
Пример
Давайте вызовем TryDequeue на пустой очереди:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
PriorityQueue<int, int> pq = new PriorityQueue<int, int>();
Console.WriteLine(pq.TryDequeue(out int res));
}
}
Результат выполнения кода:
False
Пример
Давайте опустошим очередь в цикле через TryDequeue:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
PriorityQueue<int, int> pq = new PriorityQueue<int, int>();
pq.Enqueue(10, 3);
pq.Enqueue(20, 1);
pq.Enqueue(30, 2);
while (pq.TryDequeue(out int res))
{
Console.WriteLine(res);
}
}
}
Результат выполнения кода:
20
30
10
Смотрите также
-
метод
Dequeue,
который бросает исключение на пустой очереди -
метод
TryPeek,
который смотрит важный элемент без снятия -
метод
TryDequeue,
который снимает голову обычной очереди -
свойство
Count,
которое показывает, есть ли что снимать