从 Guid 生成颜色

Ent*_*ity 3 c# guid colors

我的数据库中有各种由 unique 标识的对象System.Guid's。当我展示它们时,我希望它们每个都有基于它们的指导的独特颜色。

所以我想要这样的东西:

public Color ColorFromGuid(Guid guid) { /* ?? */ }
Run Code Online (Sandbox Code Playgroud)

在哪里

ColorFromGuid(databaseObject1.Guid) == ColorFromGuid(databaseObject1.Guid)
ColorFromGuid(databaseObject2.Guid) == ColorFromGuid(databaseObject2.Guid)
ColorFromGuid(databaseObject1.Guid) != ColorFromGuid(databaseObject2.Guid)
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

编辑显然,有颜色更独特的指导,所以每个指导不可能都有自己独特的颜色。我只是在寻找一个好的品种。

Tim*_* S. 5

你可以这样做:

return Color.FromArgb(guid.GetHashCode());
Run Code Online (Sandbox Code Playgroud)

如果您需要不透明的颜色,请使用可让您指定 alpha的重载。Color.FromArgb如果您希望相似的 GUID 生成截然不同的颜色,您可以对 Guid 执行不同类型的哈希,例如MD5 哈希,并获取数字以从中生成颜色。