你可能想如果SortedSet: http://msdn.microsoft.com/en-us/library/dd412070.aspx
如果你沒有使用.NET 4.0,其在PowerCollection項目可供選擇: http://powercollections.codeplex.com/
例與.Net4.0的SortedSet
SortedSet<float> set = new SortedSet<float>();
set.Add(13.3f);
set.Add(0.5f);
set.Add(5.5f);
Console.WriteLine(string.Format("Minimum Value: {0}", set.Min)); // prints 0.5
Console.WriteLine(string.Format("Maximum Value: {0}", set.Max)); // prints 13.3
foreach (float f in set)
{
Console.WriteLine(f);
}
// prints:
// 0.5
// 5.5
// 13.3
// using custom IComparer<float>, see implementation below
set = new SortedSet<float>(new FloatDescComparere());
set.Add(13.3f);
set.Add(0.5f);
set.Add(5.5f);
Console.WriteLine(string.Format("Minimum Value: {0}", set.Min)); // prints 13.3
Console.WriteLine(string.Format("Maximum Value: {0}", set.Max)); // prints 0.5
foreach (float f in set)
{
Console.WriteLine(f);
}
// prints:
// 13.3
// 5.5
// 0.5
Desc IComparer:
private class FloatDescComparere : IComparer<float>
{
public int Compare(float x, float y)
{
if (y > x)
return 1;
else if (x > y)
return -1;
else
return 0;
}
}
一旦它被填充一次,你會添加新的項目到列表嗎? –
你對SortedList和OrderedDictionary有什麼不瞭解?你沒有完全解釋你的用例。 – Oded
所以,如果你有一堆對,你想通過浮點排序,但也有int快速訪問,對吧? –
SirPentor