Binary heap wrapper around the IList It's a max-heap implementation i.e. the maximum element is always on top. But the order of elements can be customized by providing IComparer instance.