我有一个任意字符串列表。我想将这些转换为十六进制颜色代码。
代码不应该是随机的,因为每次转换相同的字符串时,方法必须返回相同的颜色代码。
SOLUTION:
public string GetColorCode(string value)
{
var i = value.GetHashCode() & 0x00FFFFFF;
return i.ToString("X6");
}
答案 0 :(得分:3)
您可以使用GetHashCode()
作为起点。由于GetHasCode()
返回一个完整的整数,你通常只需要3个字节来定义RGB
中的颜色,你必须通过以下任何一个来跳过无意义的部分:
var color = str.GetHashCode() & 0x00FFFFFF;
或
var color = str.GetHashCode()>>8;
此保证具有相同的字符串,相同的颜色。