Я бы определил список цветов в правильном порядке:
private List<Color> clrList = new List<Color>
{
Color.Black,
Color.Orange,
Color.Yellow,
Color.Red,
Color.Green
};
А затем напишите функцию, которая при заданном вводе длины вернула правильный цвет.
Это может выглядеть так:
private Color selectColor(int strLength)
{
int ndx;
strLength = 140 - strLength;
if (strLength < 1)
{
// what's the default ndx color to return for strings of length > 140 ?
if(strLength < 1) ndx = ?? // left for you to complete
}
else
{
// take advantage of the pattern of increments of #30 to calculate the color index
ndx = ?? // left for you to complete
}
// so now use 'ndx to pull the correct color out of 'clrList
return clrList[ndx];
}
В этом случае вы можете видеть «шаблон» в «критериях» данных: вы переходите от 50 до 140 к значению шага 30, и похоже, что есть «случай по умолчанию», который вы можете обработать в том месте, где строка сообщения настолько велика, что (140 - messageString.Length) будет <0. </p>
Я бы также вытащил значение # 140 из функции выбора цвета и сделал бы его переменной или свойством, или параметром, переданным в функцию выбора цвета, и попытался бы повторно кодировать код так, чтобы он имелся, возможно, многие из них используются в сценариях, где в приращении использовался обычный шаблон, используемый для изменения данных, к которым осуществляется доступ.