A quick search found an implementation here . The code looks clean, but I have not tried it.
If nothing else, you can run a quick performance test with SortedSet<T> (as suggested by @Josef) to find out if there is a difference in your use case.
source share