У меня есть следующий список из 10 цветов:
public static readonly IList<Brush> lineColors = new ReadOnlyCollection<Brush>
(new List<Brush> {
new SolidColorBrush(Color.FromRgb(35, 31, 32)),
new SolidColorBrush(Color.FromRgb(64, 64, 66)),
new SolidColorBrush(Color.FromRgb(89, 89, 91)),
new SolidColorBrush(Color.FromRgb(110, 111, 113)),
new SolidColorBrush(Color.FromRgb(129, 130, 132)),
new SolidColorBrush(Color.FromRgb(148, 149, 153)),
new SolidColorBrush(Color.FromRgb(168, 169, 173)),
new SolidColorBrush(Color.FromRgb(189, 190, 193)),
new SolidColorBrush(Color.FromRgb(210, 211, 213)),
new SolidColorBrush(Color.FromRgb(231, 231, 232))
});
Теперь у меня также есть диапазон от 1 до n.Я хотел бы сопоставить эти значения в равной степени с этими 10 цветами, чтобы наименьшее значение было первым цветом, а наибольшее значение сопоставлено с последним цветом.Все остальные цвета должны покрывать равное расстояние в диапазоне значений.
Как это сделать?
Я думаю, что это может быть сделано:
int position = Math.floor( value / ((max - min) / lineColors.Count));
lineColors.ElementAt(position);
Но яЯ не уверен, действительно ли это для всех возможностей и нет более простого решения.