我的数据库中有各种由 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)
最好的方法是什么?
编辑显然,有比颜色更独特的指导,所以每个指导不可能都有自己独特的颜色。我只是在寻找一个好的品种。
你可以这样做:
return Color.FromArgb(guid.GetHashCode());
Run Code Online (Sandbox Code Playgroud)
如果您需要不透明的颜色,请使用可让您指定 alpha的重载。Color.FromArgb如果您希望相似的 GUID 生成截然不同的颜色,您可以对 Guid 执行不同类型的哈希,例如MD5 哈希,并获取数字以从中生成颜色。
| 归档时间: |
|
| 查看次数: |
2727 次 |
| 最近记录: |