{
var buttonnameString = new List<string> { "button1", ... , "button12" };
for(int i = 0; i < 12; i++)
{
// Random car assignment to button
Random myRandom = new Random();
var carString = new List<string> { "Camaro", ... , "Model T" };
int index = myRandom.Next(carString.Count);
var name = carString[index];
carString.RemoveAt(index);
Tag = name.ToString();
}
}
提前感谢您提供的任何帮助。我是C#学生的第一年,所以我知道我有很多需要学习的东西,但是我已经用尽了谷歌的技巧,试图让它发挥作用。 我正在尝试做的是做一个匹配的程序。该程序将有12个按钮,标记为“button1”,“button2”....等。单击该按钮时,它将显示它的标记,该标记由随机数组提供。我已经获得了随机功能,只能分配一个按钮标签。在我挂断的地方,重复这一点到组合框中的所有按钮。我已经尝试了foreach场地,但无法让它成功运作。最后我也尝试了其他方法。下面是我停下来的地方因为我不确定要去哪里。我有两个主要问题是
答案 0 :(得分:1)
试试这个:
{
var numOfButtons = 12;
var matchingButtonIndex = 0;
// Random car assignment to button
Random myRandom = new Random();
var buttons = new List<Button> { button1, ... , button12 };
var carString = new List<string> { "Camaro", ... , "Model T" };
while (matchingButtonIndex < numOfButtons)
{
int index = myRandom.Next(carString.Count);
var name = carString[index];
if (name != null)
{
buttons[matchingButtonIndex].Tag = name;
carString[index] = null;
matchingButtonIndex = matchingButtonIndex + 1;
}
}
}
注意我已将按钮名称数组更改为按钮数组。当我找到未使用的车名时,我也清空了carString
。
答案 1 :(得分:0)
当您遍历表单的控件
时,迭代按钮很容易var carString = new List<string> { "Camaro", "Mini Cooper", "Porsche 944", "Ford Focus", "Chevy Blazer", "Model T", "Camaro", "Mini Cooper", "Porsche 944", "Ford Focus", "Chevy Blazer", "Model T" };
foreach(Control c in Controls)
{
if (c is Button)
{
Random myRandom = new Random();
int index = myRandom.Next(carString.Count);
c.Tag = carString[index];
}
}