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

本文关键字:选取 颜色 随机 数组 列表 | 更新日期: 2023-09-27 18:25:54

因此,我正在尝试制作一个函数,使某个标签成为颜色列表中的随机颜色。这是我现在的代码:

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"

这是怎么做到的?

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

您需要在随机索引中获取项目,目前您正在尝试将int分配给Color:

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

在可以使用泛型的时候,永远不要使用ArrayList

试着这样做:

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)]);