Хеширование строк в цвет в C #

Я не знаю, подходит ли для этого хеширование, но я хочу преобразовать строку в шестнадцатеричный или полуслучайный цвет. .

Я использовал функцию string.GetHasCode, но результаты искажены:

string[] list = { "Test String", "something else", "Test Hooray" };

foreach (string k in list)
{
    string x = k.ToUpper().GetHashCode().ToString("X8");
    Console.WriteLine("#" + x.Substring(0,6));
}

В идеале я бы хотел, чтобы строки, начинающиеся с одинаковых префиксов, имели совершенно разные цвета. Например, «Test String» и «Test Hooray» должны быть совершенно разными, потому что оба они начинаются с «Test».

Меня не беспокоит абсолютное решение, я просто хочу что-то достаточно хорошее. Список [] будет на , большинство будет содержать примерно 10 элементов одновременно, и в большинстве случаев только 2, 3 или 4. Это означает, что цвет должен отличаться только от 2 или 3 другие цвета.

Я в основном создаю визуальный список, в котором цвет ссылается на имя, но имя ВСЕГДА должно соответствовать одному и тому же цвету.

Редактировать: Пример вывода:

#66BD44
#7EC83E
#95E4FE

Цвета: http://www.colorcombos.com/combotester.html?color0=66BD44&color1=7EC83E&color2=95E4FE&color3=000316

17
задан Shawn 8 October 2010 в 02:08
поделиться