【发布时间】:2011-07-18 17:23:02
【问题描述】:
我想要做的是让我的 listView 中的每个项目都具有唯一的颜色。所以我所拥有的是列表视图中的项目数为“计数”
我的方法是调用下面的方法并给出我的项目的方法编号,然后它应该有一个保存第一种颜色的数组,然后当要生成下一种颜色时,它应该与之前的颜色进行比较在数组中。
问题是我无法弄清楚我需要什么样的数组以及如何将数组中每个插入的颜色与最后插入的颜色进行比较。这是我的代码:
public Color GetUniqueRandomColor(int count){
for(int i = 0; i < count; i++)
{
Color.FromArgb(randomColor.Next(70, 200), randomColor.Next(100, 225), randomColor.Next(100, 230));
}
return Color.Red;}
这是一个元素在数组中的外观:
颜色 [A=255, R=132, G=148, B=181]
如您所见,我的方法仍然缺少所需的数组和算法来比较新插入的颜色。我们将提供一些帮助和提示!
【问题讨论】:
-
作为旁注...您正在生成可能非常相似的颜色。如果可以,请尝试区分 132、148、181 和 132、148、180! :-) 从技术上讲,它们是不同的。
-
如果用户无论如何都看不到差异,那么唯一性有什么用?
-
接受的答案解决了您所说的问题,是的。但我认为您的使用无法将其与不强制唯一性的幼稚算法区分开来。
标签: c# arrays random colors unique