-2
ISortedMagicCollection<string> collecton = new SortedMagicCollection<string>();
collection.Add("AAA");
collection.Add("CCC");
collection.Add("BBB");
collection.Add("XXX");
collection.Add("DDD");
var points = collection.FindPrevious("BBB").Take(3).ToList();
points[0] == "AAA"; // true;
points[1] == "BBB"; // true;
points[2] == "CCC"; // true;
總之,該列表應該總是排序,應該很容易找到最近的鄰居到任何特定的項目。
請注意,該列表是動態的。項目一直在添加和刪除。
可以使用'排序列表<字符串,字符串>'。然後通過改變索引找到密鑰的索引並得到下一個/前一個密鑰。問題是什麼?同步?是一個簡單的'鎖'太貴了一段時間得到鄰居?也許'SortedSet <>'也會。 – Sinatr
SortedList的插入刪除性能差,因爲它使用線性數組來存儲所有節點。 – bradgonesurfing
然後使用雙向鏈表並通過二分查找找到插入點等? –