Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个任意字符串的列表。我想将这些转换为十六进制颜色代码。
代码不应该是随机的,因为每次转换相同的字符串时,该方法必须返回相同的颜色代码。
解决方案:
public string GetColorCode(string value) { var i = value.GetHashCode() & 0x00FFFFFF; return i.ToString("X6"); }
你可以GetHashCode()作为一个起点。由于GetHasCode()返回一个完整的整数并且您通常只需要 3 个字节来定义颜色RGB,因此您必须通过执行以下任一操作来跳过 noin 重要部分:
GetHashCode()
GetHasCode()
RGB
var color = str.GetHashCode() & 0x00FFFFFF;
或者
var color = str.GetHashCode()>>8;
此保证具有相同的字符串,相同的颜色。