C#-显示重复的随机数
我写了这个非常粗糙的方法来生成随机数,并在Windows窗体中以labelText显示。发生的情况是,对于第二个标签文本,它显示的与第一个标签文本完全相同。希望您能提供反馈,说明如何更正此错误,以便每个标签文本显示唯一的随机数C#-显示重复的随机数,c#,winforms,random,C#,Winforms,Random,我写了这个非常粗糙的方法来生成随机数,并在Windows窗体中以labelText显示。发生的情况是,对于第二个标签文本,它显示的与第一个标签文本完全相同。希望您能提供反馈,说明如何更正此错误,以便每个标签文本显示唯一的随机数 private void btnGenerateNumbers_Click(object sender, EventArgs e) { List<string> numberStringT = new List<strin
private void btnGenerateNumbers_Click(object sender, EventArgs e)
{
List<string> numberStringT = new List<string>();
for (int i = 0; i < 2; i++)
{
string result = "";
Random rnd = new Random();
int one = rnd.Next(1, 49);
int two = rnd.Next(1, 49);
int three = rnd.Next(1, 49);
int four = rnd.Next(1, 49);
int five = rnd.Next(1, 49);
int six = rnd.Next(1, 49);
int seven = rnd.Next(1, 49);
if ((one == two) | (one == three) | (one == four) | (one == five) | (one == six) | (one == seven))
{
one = rnd.Next(1, 49);
}
if ((two == one) | (two == three) | (two == four) | (two == five) | (two == six) | (two == seven))
{
two = rnd.Next(1, 49);
}
if ((three == one) | (three == two) | (three == four) | (three == five) | (three == six) | (three == seven))
{
three = rnd.Next(1, 49);
}
if ((four == one) | (four == two) | (four == three) | (four == five) | (four == six) | (four == seven))
{
four = rnd.Next(1, 49);
}
if ((five == one) | (five == two) | (five == three) | (five == four) | (five == six) | (five == seven))
{
five = rnd.Next(1, 49);
}
if ((six == one) | (six == two) | (six == three) | (six == four) | (six == five) | (six == seven))
{
six = rnd.Next(1, 49);
}
if ((seven == one) | (seven == two) | (seven == three) | (seven == four) | (seven == five) | (seven == six))
{
seven = rnd.Next(1, 49);
}
List<int> numberList = new List<int>();
List<int> numberListNoDuplicates = new List<int>();
numberList.Add(one);
numberList.Add(two);
numberList.Add(three);
numberList.Add(four);
numberList.Add(five);
numberList.Add(six);
numberList.Add(seven);
numberList.Sort();
result = numberList[0].ToString() + " " + numberList[1].ToString() + " " + numberList[2].ToString() + " " + numberList[3].ToString() + " " + numberList[4].ToString() + " " + numberList[5].ToString() + " " + numberList[6].ToString();
numberStringT.Add(result);
numberList.Clear();
result = "";
rnd.Next();
}
//lblRandomNumber.Text = result;
lblRandomNumber.Text = numberStringT[0];
lblRandomNumber2.Text = numberStringT[1];
}
private void btnGenerateNumbers\u单击(对象发送方,事件参数e)
{
List numberStringT=新列表();
对于(int i=0;i<2;i++)
{
字符串结果=”;
随机rnd=新随机();
int one=rnd.Next(1,49);
int two=rnd.Next(1,49);
int三=下一个(1,49);
int-four=rnd.Next(1,49);
int five=下一个(1,49);
int-six=rnd.Next(1,49);
int seven=下一个(1,49);
如果((一==二);(一==三);(一==四);(一==五);(一==六);(一==七))
{
一个=下一个(1,49)的rnd;
}
如果((二==一);(二==三);(二==四);(二==五);(二==六);(二==七))
{
二=第二个(1,49)rnd;
}
如果((三==1);(三==2);(三==4);(三==5);(三==6);(三==7))
{
三=第二个(1,49)rnd;
}
如果((四==1);(四==2);(四==3);(四==5);(四==6);(四==7))
{
四=第二个(1,49)rnd;
}
如果((五==一);(五==二);(五==三);(五==四);(五==六);(五==七))
{
五=第二个(1,49)rnd;
}
如果((六==一);(六==二);(六==三);(六==四);(六==五);(六==七))
{
六=第二个(1,49)rnd;
}
如果((七==一);(七==二);(七==三);(七==四);(七==五);(七==六))
{
七=第二个(1,49)rnd;
}
列表编号列表=新列表();
List NumberListNodeUpplicates=新列表();
数字列表。添加(一);
数字列表。添加(两个);
数字列表。加(三);
数字列表。加(四);
数字列表。加(五);
数字列表。加(六);
数字列表。添加(七);
numberList.Sort();
结果=numberList[0]。ToString()+“”+numberList[1]。ToString()+“”+numberList[2]。ToString()+“”+numberList[3]。ToString()+“”+numberList[4]。ToString()+“”+numberList[5]。ToString()+“”+numberList[6]。ToString();
numberStringT.Add(结果);
numberList.Clear();
结果=”;
rnd.Next();
}
//lblRandomNumber.Text=结果;
lblRandomNumber.Text=numberStringT[0];
lblRandomNumber2.Text=numberStringT[1];
}
将此移动到循环的外部/之前:
Random rnd = new Random();
将此移动到for
循环的外部/之前:
Random rnd = new Random();
拜托,我们不需要第5000份。避免回答这个问题。我很惊讶有3张赞成票duplicate@Camilo,对不起,我正在用手机接电话。请标记为你认为合适的重复。很抱歉问这个问题,我认为它不是重复的,但我可能错了。谢谢弗兰克给我答案。我们不需要第5000份。避免回答这个问题。我很惊讶有3张赞成票duplicate@Camilo,对不起,我正在用手机接电话。请标记为你认为合适的重复。很抱歉问这个问题,我认为它不是重复的,但我可能错了。谢谢弗兰克给我答案。