I found myself wanting to learn a bit more about Heaps so I built one in C#.
Array backed storage, O(log(n)) inserts and removals, (O(1)) to get the min/max value.
It can be a Min- or a Max-Heap, and it accepts any type as long as that type is IComparable.