1

我有一个任意字符串的列表。我想将这些转换为十六进制颜色代码。

代码不应该是随机的,因为每次转换相同的字符串时,该方法必须返回相同的颜色代码。

解决方案:

public string GetColorCode(string value)
{
    var i = value.GetHashCode() & 0x00FFFFFF;
    return i.ToString("X6");
}
4

1 回答 1

3

你可以GetHashCode()作为一个起点。由于GetHasCode()返回一个完整的整数并且您通常只需要 3 个字节来定义颜色RGB,因此您必须通过执行以下任一操作来跳过 noin 重要部分:

var color = str.GetHashCode() & 0x00FFFFFF;

或者

 var color = str.GetHashCode()>>8;

此保证具有相同的字符串,相同的颜色。

于 2012-11-13T11:58:36.510 回答