![](/img/trans.png)
[英]Find largest Dictionary<int,string> key whose value is less than the search value
[英]Need sorted dictionary designed to find values with keys less or greater than search value
我需要按價格 (十進制)值對對象進行快速訪問。 我需要能夠找到價格大於 A或小於B的所有物品。 我想到了SortedList ,但它沒有提供從給定鍵值開始查找升序或降序枚舉器的方法(比如給我所有價格低於120美元的對象)。
想象一個系統接受賣家出售的汽車並將它們存儲到該集合中。 然后買家希望找到比1000美元便宜的汽車。
基本上我需要的是基於樹的集合和功能,以找到更小\\更大\\等於提供密鑰的節點。
請指教。
您可以在SortedList上使用BinarySearch來搜索滿足條件的第一個和最后一個索引,然后從列表中獲取項目范圍。
答案取決於您的使用模式。 如果這是一次性消耗未排序的輸入集並找到合適的對象,那么只使用LINQ會更好:
list.Where(e => A < e.Price || e.Price < B);
如果列表是靜態的,並且您想要查詢多個范圍,則將對象粘貼到數組中,按價格對它們進行排序,然后使用二進制方法查找感興趣的范圍。
請想一下SortedList。 或者,您可以使用任何集合並使用LINQ進行查詢。 例如普通通用列表:
List<Int32> tempList = new List<Int32>();
tempList.Where(singleItem => singleItem > 100)
.ToList<Int32>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.