Вы можете разделить свое число на сотни и десятки и базовые логики c.
Тогда выражение switch
станет действительно лаконичным:
var test = Enumerable.Range(5, 12).Select(i => i * 10).ToArray();
foreach (int i in test)
{
var hundreds = i / 100;
var tens = (i % 100) / 10;
var result = (hundreds == 1, tens < 5, tens > 0, tens == 9) switch
{
(true, true, true, false) => 1.1,
(false, false, true, true) => 0.9,
(_, _, _, _) => 1,
};
Console.WriteLine($"{i} => {result}");
}
Но обратите внимание, что вы подход очень ясен и читабелен.
Мое предложение ДЕЙСТВИТЕЛЬНО ТОЛЬКО с точки зрения краткости, оно мало читабельно и любые изменения в логи c могут быть ужасны.
Но с другой стороны рука, в некоторых случаях может стать очень удобным.