我无法随机化X字符串并将其添加到我的listbox
。它不断地反复添加相同的字符串。我希望它为每个字符串添加1行。如果我说金额是11,它只会生成一个字符串并将其添加11次到listbox
。我做错了什么?
这是我的代码:
for (int i = 0; i < amount; i++)
{
Random adomRng = new Random();
string rndString = string.Empty;
char c;
for (int t = 0; t < 8; t++)
{
while (!Regex.IsMatch((c = Convert.ToChar(adomRng.Next(48, 128))).ToString(), "[a-z0-9]")) ;
rndString += c;
}
listBox1.Items.Add(rndString);
}
答案 0 :(得分:2)
Random adomRng = new Random();
for (int i = 0; i < amount; i++)
{
string rndString = string.Empty;
char c;
for (int t = 0; t < 8; t++)
{
while (!Regex.IsMatch((c = Convert.ToChar(adomRng.Next(48, 128))).ToString(), "[a-z0-9]")) ;
rndString += c;
}
listBox1.Items.Add(rndString);
}
将random
初始化代码放在循环之外,它会得到正确的结果
说明:在短时间内创建多个新的随机对象(让我们说在for循环中)将始终为您提供相同的输出,因为它将使用当前时间戳为随机种子。
答案 1 :(得分:0)
您几乎就在那里,只需在代码中进行两处简单的更改即可实现目标:
for (int t = 0; t < 8; t++)
{
rndString =""; //Change 1
while (!Regex.IsMatch((c = Convert.ToChar(adomRng.Next(48, 128))).ToString(), "[a-z0-9]")) ;
rndString += c;
listBox1.Items.Add(rndString);// change 2
}