C#: Generic sorted container that can return the sorted position of a newly added object?
I need a generic container that keeps its elements sorted and can be asked where (at which position) it would insert a new element, without actually inserting it.

Does such a container exist in the .NET libraries?
The best illustration is an example (container sorts characters by ASCII value, let's assume unicode does not exist):

    sortedContainer.Add('d');
    sortedContainer.Add('b');
    sortedContainer.Add('g');

    //container contains elements ordered like 'b' 'd' 'g'
    //index  -------------------------------->  0   1   2
    
    sortedContainer.GetSortedIndex('a'); //returns 0
    sortedContainer.GetSortedIndex('b'); //returns 0
    
    sortedContainer.GetSortedIndex('c'); //returns 1
    sortedContainer.GetSortedIndex('d'); //returns 1
    
    sortedContainer.GetSortedIndex('e'); //returns 2
    sortedContainer.GetSortedIndex('f'); //returns 2
    sortedContainer.GetSortedIndex('g'); //returns 3
    
    sortedContainer.GetSortedIndex('h'); //returns 4
    [...]


The search for the position should take advantage of the fact that the elements are sorted.
C#: Generic sorted container that can return the sorted position of a newly added object?
===

I need a generic container that keeps its elements sorted and can be asked where (at which position) it would insert a new element, without actually inserting it.

Does such a container exist in the .NET libraries?
The best illustration is an example (container sorts characters by ASCII value, let's assume unicode does not exist):

    sortedContainer.Add('d');
    sortedContainer.Add('b');
    sortedContainer.Add('g');

    //container contains elements ordered like 'b' 'd' 'g'
    //index  -------------------------------->  0   1   2
    
    sortedContainer.GetSortedIndex('a'); //returns 0
    sortedContainer.GetSortedIndex('b'); //returns 0
    
    sortedContainer.GetSortedIndex('c'); //returns 1
    sortedContainer.GetSortedIndex('d'); //returns 1
    
    sortedContainer.GetSortedIndex('e'); //returns 2
    sortedContainer.GetSortedIndex('f'); //returns 2
    sortedContainer.GetSortedIndex('g'); //returns 3
    
    sortedContainer.GetSortedIndex('h'); //returns 4
    [...]


The search for the position should take advantage of the fact that the elements are sorted.