Func<Color[],Color,int> GetMin = (Color[] items_colors, Color input_color)=>{
int min = int.MaxValue;
int j = -1;
for(int i =0; i<items_colors.Length; i++) {
var item_color = items_colors[i];
int R = Math.Abs(item_color.R - input_color.R);
int G = Math.Abs(item_color.G - input_color.G);
int B = Math.Abs(item_color.B - input_color.B);
int sum = R + G + B;
if (sum < min) {
min = sum;
j = i;
}
}
return j;
};
// Список цветов
var colors = new[]{
Color.FromArgb(253, 0, 0), // 0
Color.FromArgb(127, 127, 127), // 1
Color.FromArgb(0, 0, 0), // 2
Color.FromArgb(0, 0, 253), // 3
Color.FromArgb(254, 254, 0), // 4
Color.FromArgb(0, 127, 1) // 5
};
// Искомый цвет
var color = Color.FromArgb(23, 4, 157);
// Номер цвета
return GetMin(colors, color);