Чтобы преобразовать диапазон из одного в C#, вы можете использовать различные методы. Вот несколько часто используемых подходов:
- Линейное сопоставление. Этот метод включает в себя сопоставление значений из одного диапазона в другой с использованием линейной интерполяции. Вам необходимо знать минимальное и максимальное значения обоих диапазонов. Затем вы можете вычислить соответствующее значение во втором диапазоне для данного значения в первом диапазоне.
public static double MapRange(double value, double fromMin, double fromMax, double toMin, double toMax)
{
return (value - fromMin) * (toMax - toMin) / (fromMax - fromMin) + toMin;
}
- Метод расширения: вы также можете создать метод расширения для типа
double
, чтобы упростить процесс преобразования.
public static class DoubleExtensions
{
public static double MapRange(this double value, double fromMin, double fromMax, double toMin, double toMax)
{
return (value - fromMin) * (toMax - toMin) / (fromMax - fromMin) + toMin;
}
}
- Функции математической библиотеки. Библиотека.NET Math предоставляет такие функции, как
Math.Clamp
иMath.Map
(доступны в некоторых библиотеках), которые можно использовать для преобразования значения. из одного диапазона в другой.
double value = 5;
double fromMin = 0;
double fromMax = 10;
double toMin = 0;
double toMax = 100;
double convertedValue = Math.Clamp((value - fromMin) / (fromMax - fromMin), 0, 1) * (toMax - toMin) + toMin;
Это всего лишь несколько методов преобразования одного диапазона в другой в C#. В зависимости от ваших конкретных требований и контекста, в котором вы работаете, могут быть и другие подходящие подходы.