Вы можете рассчитать пределы осей, используя целочисленное округление до более низких и более высоких значений
low = stepsize * (min / stepsize) //integer division needed
high = stepsize * ((max + stepsize - 1) / stepsize)
Пример кода Python возвращает пределы и количество тиков (на один больше, чем счетчик интервалов)
def getminmax(minn, maxx, step):
low = (minn // step)
high = (maxx + step - 1) // step
ticks = high - low + 1
return low * step, high * step, ticks
print(getminmax(213, 4405, 1000))
print(getminmax(-1213,1405, 500))
(0, 5000, 6)
(-1500, 1500, 7)
Можно передать в Вашем optionsSorted<TKey,TValue>
словарь в качестве параметра к экземпляру нового Dictionary<TKey,TValue>
, Как так:
var dictionary = new Dictionary<type1,type2>(optionsSorted);
Попробуйте следующее
var dictionary = optionsSorted.ToDictionary(x => x.Key, x=> x.Value);
Мне не совсем ясно, что Вы пытаетесь выполнить. Я предполагаю, что у Вас есть функция, которая возвращает Словарь, и Вы хотите, чтобы это было отсортированным словарем, когда сортировка верна.
Если это верно, то Вам нужен тип возврата, который может быть Словарем или SortedDictionary.
Если бы Вы хотите единственную функцию, делающую это, я использовал бы IDictionay в качестве типа возврата метода.