У меня есть SortedDictionaryПоиск ближайшего значения в SortedDictionary
SortedDictionary<int, CPUOptimizationObject> myDict;
Теперь я хочу, чтобы найти первое значение выше X. я могу сделать что-то вроде этого
foreach (var iKey in MyDict.Keys)
{
if (iKey >= thresholdKey)
{
foundKey = iKey;
break;
}
}
, но это не хорошая производительность.
Любое лучшее предложение?
(есть метод, который в чем-то коллекции, как двоичный поиск SortedDictionary?)
Использование двойного ключа не является хорошей идеей. Что вы там храните и почему используете SortedDictionary, если ищете ближайший матч? Какова проблема, которую вы пытаетесь решить? –
Вы можете вызвать ToList(), а затем выполнить BinarySearch или LINQ. Но не уверен, что так быстрее. Возможно, вы можете улучшить свою технику для лучшего ключа или другого типа списка, как сказал Панагиотис. – Koryu
Вы правильно относитесь к двойному. фиксированный до int. – Jeb