You still can use SortedList and try to make a unique key by combining your value and a Guid into a class. In this case, you must implement the IComparer for your new key, something like:
class MyKey
{
public Guid Guid { get; set; }
public float Value { get; set; }
}
class MyComparer : IComparer
{
public int Compare(MyKey x, MyKey y)
{
if (x == null || y == null)
throw new InvalidOperationException("both of parameters must be not null");
if (x.Value < y.Value) return -1;
if (x.Value > y.Value) return 1;
return 0;
}
}
and then
var mySortedList = new SortedList(new MyComparer());