title: C# .NET poor sorted containers
body: <p>I'm to write an event based simulator in C#. I need a sorted container for the scheduler that has the following capabilities:</p>
  
  <ul>
  <li>Key - Value pairs are stored sorted by the key (Time, Delegate pairs)</li>
  <li>Efficient inserts and removes by key (Smallest items are removed, inserts are arbitrary)</li>
  <li>The smallest item (key value pair) can be queried.</li>
  </ul>
  
  <p>What I need is actually a very basic binary tree or a sorted queue or something similar. But the options I have in .NET - SortedList and SortedDictionary - are unsatisfactory. The first has efficiency issues with inserts and removes, the second has problems with querying the smallest items.</p>
  
  <p>Should I start implementing my own container or I miss something? It is so unbelievable that there is no built in container that fits my needs.</p>
  
  <p>Thanks!</p>
  
  <p>(update: Im looking for a solution under .NET 2.0)</p>