我需要在我的sortedDictionary中設置一個元素的值,通過index訪問。設置一個SortedDictionary的第i個值
I.e.
sortedDictionary.Values[index] = value; // compile error
請注意,以下內容不正確,因爲它是通過鍵訪問的,而不是索引。
sortedDictionary[index] = value; // incorrect
我想出了以下解決方案,但直覺告訴我這很慢。我假設按鍵訪問是O(log N),並且按索引訪問是O(1),但我不確定。
sortedDictionary[sortedDictionary.ElementAt(index).Key] = value;
一些背景資料:
我使用SortedDictionary,因爲我需要快速插入,刪除,查詢,並能夠訪問相鄰元素。 (即次高或次低)。效率很重要。
ElementAt(index)是枚舉的擴展方法 - 它在O(n)時間內工作,因爲SortedDictionary不實現IList接口。 – maciejkow 2009-09-09 08:23:01
似乎沒有任何內置的.NET結構可以滿足我需要的功能。我可能會跳過列表。 – abtree 2009-09-09 11:21:25