PriorityQueue<TElement, TPriority> — elements dequeued by priority.
Basic usage:
1var pq = new PriorityQueue<string, int>();2pq.Enqueue("low", 3);3pq.Enqueue("high", 1);4pq.Enqueue("medium", 2);56while (pq.TryDequeue(out var item, out var priority))7{8 Console.WriteLine($"{item} (priority: {priority})");9}10// Output: high, medium, low
With comparer:
1var pq = new PriorityQueue<Task, int>(2 Comparer<int>.Create((a, b) => b.CompareTo(a)));
Implementation:
Use cases: