从数组列表中挑选随机颜色

时间:2014-10-07 01:07:02

标签: c# random arraylist

所以,我正在尝试创建一个函数,使某个标签从颜色列表中变成随机颜色。这是我现在的代码:

ArrayList colors = new ArrayList();
colors.Add(Color.Black);
Random rColor = new Random();
var randomColor = rColor.Next(0, colors.Count);

colorTextLabel.ForeColor = randomColor;

但它只是在代码的最后一行返回一个错误,说"不能隐式转换类型' int'到' System.Drawing.Color'"

这是怎么做到的?

2 个答案:

答案 0 :(得分:3)

您需要获取随机索引处的项目,目前您正在尝试将int分配给颜色:

colorTextLabel.ForeColor = (Color)colors[randomColor];

在使用generics时不要使用ArrayList

答案 1 :(得分:0)

尝试这样做:

var colours =
    typeof(System.Drawing.Color)
        .GetProperties()
        .Where(x => x.PropertyType == typeof(System.Drawing.Color))
        .Select(x => x.Name)
        .ToArray();

colorTextLabel.ForeColor =
    System.Drawing.Color.FromName(colours[rColour.Next(0, colours.Length)]);