我有一組有序的鍵值對,例如帶有以下各項:一個有序字典在這裏很容易轉移到下一個關鍵
1 "one"
2 "two"
4 "four"
50 "fifty"
我想有一個快速查找(所以給出一個int
密鑰,我想找到該密鑰的值),但理想情況下,還可以使用當前密鑰快速查找字典中的下一個密鑰 - 因此,給定密鑰2
,發現下一個密鑰是4
,然後50
。
我知道一個詞典快速地完成了第一個詞典,並且也像第二部分的鏈接列表一樣(但是很難'跳入'從一個特定的鍵開始)。
我已經看了here,它似乎有些可能與一個有序的字典?我想知道C#中是否有一個好的數據結構來完成這些事情(按鍵查找並移至下一個鍵)?
我不需要項目的數量非常大(可能在幾千個),但如果可能的話,我想要做大量的查找並快速在各個關鍵點之間向前移動(不檢查第5個, 6,7 ...出現在詞典中)。
你可能想看看http://stackoverflow.com/questions/4720674/how-do-i-get-previous-key-from-sorteddictionary – Florian
詞典已經有鍵的集合。所以你只需遍歷鍵。 'foreach(var key in dict.Keys)' –
我建議如果像SortedDictionary或SortedList這樣的單數據類型沒有幫助,那麼將數據存儲在兩個單獨的結構中可能是最優的,並且可以互換地使用,取決於最優戰略。儘管如此,這會增加保持最新的成本。 @ M.kazemAkhgary我相信他的意思是優化只用'int 2'進入一個函數,而不是做完整的收集循環。 – Katana314