using System.Collections.Generic;
var queue = new PriorityQueue<string, int>(new ReverseComparer<int>());
queue.Enqueue("Red", 10);
queue.Enqueue("Green", 20);
queue.Enqueue("Yellow", 15);
queue.Enqueue("Brown", 25);
queue.Enqueue("Purple", 20);
while (queue.TryDequeue(out var element, out var priority))
Console.WriteLine($"{priority} -> {element}");
class ReverseComparer<T> : IComparer<T>
public int Compare(T x, T y) => -Comparer<T>.Default.Compare(x, y);