Я не знаю, является ли хеширование правильным словом для этого, но я хочу случайным образом преобразовать строку в шестнадцатеричный или argb-цвет.
Я использовал функцию 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