The .NET libraries in C# don't have a heap data structure (there are similar ones like SortedList and SortedDictionary, however they aren't implemented with a heap data structure, and hence, won't provide a similar performance to that of a heap in certain scenarios).
So I decided to implement a generic version myself (although not rigorously tested).