我在加入2个代码块时遇到问题。 我有这个代码生成4种随机颜色。
static Color[] colors = { Color.Red, Color.Green, Color.Yellow, Color.Purple}; // Escolher as cores disponiveis
static Color GetRandomColor()
{
var random = new Random();
return colors[random.Next(colors.Length)];
}
我认为代码很好,但如果不是,请告诉我。
我需要将它与此代码相关联:
List<Utente> ListaUtente = new List<Utente>();
ListaUtente.Add(new Utente(22, "Pedro", 555444333, "pedro@gmail.com"));
ListaUtente.Add(new Utente(22, "Lucas", 555444333, "lucas91@gmail.com"));
ListaUtente.Add(new Utente(22, "Rodrigo", 555444333, "rodrigo00@gmail.com"));
ListaUtente.Add(new Utente(22, "Gaspar", 555444333, "gaspar@gmail.com"));
ListaUtente.Add(new Utente(22, "Assis", 555444333, "assis@gmail.com"));
我需要程序输出其中一种随机颜色(紫色,红色,黄色和绿色)并将其写在屏幕上。
类似的东西:
Lucas - Green
Rodrigo - Red
如何链接这两个块?我可以完全访问列表以及&#34; Utente&#34;类属性。
答案 0 :(得分:4)
我不确定你在这里寻找什么。您可以只将一个Color属性添加到Utente类并更新构造函数,以便您可以调用此
ListaUtente.Add(new Utente(22, "Pedro", 555444333, "pedro@gmail.com", GetRandomColor()));
然后
foreach(Utente utente in ListaUtente)
{
Console.WriteLine(utente.Name + " " + utente.Color);
}
答案 1 :(得分:0)
喜欢这个?:
foreach(Utente utente in ListaUtente)
{
Console.WriteLine($"{ GetRandomColor() } - { utente.Name }");
}
同样正如Chris Dunaway指出的那样,由于每次调用GetRandomColor()时都会创建一个新的Random实例,因此默认种子(系统时间)相同(在更快的机器上),因此可能会产生相同的随机数)所有电话。
因此,更好的方法是从当时方法中提取Random对象。 类似的东西:
static Color[] colors = { Color.Red, Color.Green,Color.Yellow,Color.Purple};
static Random random = new Random();
static Color GetRandomColor()
{
return colors[random.Next(colors.Length)];
}