从字典中获取一系列键的有效方法

cms*_*sjr 4 c# generics dictionary

我有一个Dictionary对大多数操作我只需要检索的钥匙的一个条目,但对于一些操作,我需要与一定范围的密钥相关的条目工作.我这样做的方法是使用GetKeysFindAll我感兴趣的范围匹配,但是想知道是否有人能提出更好的方法.

Meh*_*ari 5

Dictionary其作为哈希表来实现,没有特别适合于对键有效地进行范围选择操作.您必须访问所有键才能在指定范围内找到所有键.完成它的一个好方法是使用简单的LINQ表达式查询其键集合.


Jer*_*ome 5

A SortedListorSortedDictionary会对项目进行排序,因此您可以尝试获取范围底部的键,然后将元素遍历到范围的顶部。

对 a 使用二分搜索SortedList将为您提供与范围底部或最接近的较高值匹配的键的索引。请参阅如何对 IList<T> 执行二分搜索?