Предполагая, что каждый цвет использует один бит в качестве значения, вы можете просто найти индекс этого бита.
public int GetIndex(Colors color) {
int value = (int)colors;
int index = 0;
while (value > 0) {
value >>= 1;
index++;
}
return index;
}
Обратите внимание, что индекс битов обычно равен нулю, но здесь вы получаете индекс на основе одного.
Если вы хотите индекс, основанный на нуле, вы получите индекс два для синего, а не три, как вы указали в вопросе. Просто начните с index = -1;
, если вы хотите именно этого.