C# 随机化字符串并添加到列表框
我无法将X个数量的字符串随机化并将它们添加到我的C# 随机化字符串并添加到列表框,c#,string,winforms,list,random,C#,String,Winforms,List,Random,我无法将X个数量的字符串随机化并将它们添加到我的列表框中。它不断地重复添加相同的字符串。我希望它为每个字符串添加一行。如果我说amount是11,它只生成一个字符串并将其添加到列表框中11次。我做错了什么 这是我的密码: for (int i = 0; i < amount; i++) { Random adomRng = new Random(); string rndString = string.Empty;
列表框中。它不断地重复添加相同的字符串。我希望它为每个字符串添加一行。如果我说amount是11,它只生成一个字符串并将其添加到列表框中11次。我做错了什么
这是我的密码:
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);
}
for(int i=0;i
您就快到了,只需在代码中做两个简单的更改即可实现目标:
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
}
for(int t=0;t<8;t++)
{
rndString=“;//更改1
而(!Regex.IsMatch((c=Convert.ToChar(adomRng.Next(48128))).ToString(),“[a-z0-9]”);
rndString+=c;
listBox1.Items.Add(rndString);//更改2
}
Random adomRng=new Random();
对于(int i=0;i
将random
init代码放在循环之外,它将得到正确的结果
解释:在短时间内创建多个新的随机对象(比如在for循环内)将始终提供相同的输出,因为它将使用当前时间戳作为随机种子您是否使用默认种子在每个循环中创建一个新的随机对象?它们每次都应该生成相同的内容。我想生成X个长度为8的字符串。它创建的每个字符串都应该添加到listbox中。这不是我的代码告诉它要做的吗?我很困惑。idk为什么它不工作@JohnnyPut your Random adomRng=new Random();for循环的外侧。可能重复的
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);
}