我制作了一个简单的数字生成器,我有一个问题:生成器是否可以弹出“红色”,“蓝色”,“绿色”,“黄色”和“白色”而不是数字1- 5?
namespace zufallsgenerator
{
public partial class Form1 : Form
{
Random r = new Random();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnWhlie_Click(object sender, EventArgs e)
{
int summe = 0, z;
lblAnzeige.Text = " ";
while (summe <= 0)
{
z = r.Next(1, 6);
summe = summe + z;
}
lblAnzeige.Text += summe + "\n";
}
}
}
答案 0 :(得分:11)
您可以创建一个简单的数组,并使用随机生成的索引访问它,例如:
var r = new Random();
string[] colors = {"red", "blue", "green", "yellow", "white"};
var random_color = colors[r.Next(colors.Length)];
答案 1 :(得分:3)
您可以使用enum。
定义类似
的内容enum Color
{
Red,
Green,
Blue
}
然后你可以将你的int转换为:
Color color = (Color)r.Next(1, 6)
并且,如果你愿意
Text = color.ToString();
答案 2 :(得分:2)
如果得到1-5的输出,你可以创建包含5个元素的字符串[]
string[] colors = new string[] { "red", "blue", "green", " yellow", "white" }
而不是检索r.Next( 1, 6 )
,您可以检索colors[ r.Next( 0, 5 ) ]
(因为字符串数组是0索引的,更改了最小值和最大值)。
答案 3 :(得分:1)
考虑到Xi Huan的回答,你可以使用扩展方法使它更漂亮:
public static T Next<T>(this System.Random Random, params T[] List)
{
if(List.Length==0)
return default(T);
return List[Random.Next(0, List.Length)];
}
然后调用它只是:
var r=new System.Random();
var randon_color = r.Next("red", "blue", "green", "yellow", "white");
答案 4 :(得分:0)
我要做的是创建一个字符串列表。然后把随机数作为i。所以喜欢
List<string> list1 = new List<string>{"red", "blue", "green"};
然后使用这样的随机数来调用它的随机元素。 list1[randomNumber]
;
答案 5 :(得分:0)
使用可能的期望输出值定义一个数组,而不是将summe连接到文本,添加YourArrayOfNamedValues [summe]