3
我有一些數據以這種形式(字典):查找哪個範圍確實的值位於一個字典
Value0 Text1
Value1 Text2
Value2 Text3
Value3 Text4
Value4 Text5
我現在通過其可具有任何隨機值的數組要循環。
foreach value in random array
{
if value is between (value0 && value1)
console.writeline(Text1)
if value is between (value1 && value2)
console.writeline(Text2)
if value is between (value2 && value3)
console.writeline(Text3)
if value is between (value3 && value4)
console.writeline(Text4)
}
我面臨這裏的問題是,對於所述陣列的每一個值,我應該能夠檢測什麼範圍爲(大於值1大於值0更大和更小),因此得到相應的文本。但是,字典不是一個常數,可以有任意數量的值,因此如果條件如上所述我不能這樣做。 (例如:字典可能有另一個條目Value5 Text6
)
什麼是一個體面的方式來做到這一點?
你想使用一個有序的字典,然後通過設置記憶的最後一個鍵 - 值對條目進行迭代,你的值小於或等於至。然後,只要你找到一個比你的價值更大的鑰匙,就會停下來並返回。然而,我不知道這是什麼最好的C#數據結構 - SortedList?或者你可以從不同類型的字典中提取密鑰,對它們進行排序並遍歷它。 (理想情況下,您希望在沒有完成迭代的情況下找到最大不超過的關鍵字,例如樹狀結構,但我不知道這樣做的數據結構實現。) – Rup 2012-04-02 10:31:43