Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 随机化字符串并添加到列表框_C#_String_Winforms_List_Random - Fatal编程技术网

C# 随机化字符串并添加到列表框

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;

我无法将X个数量的字符串随机化并将它们添加到我的
列表框中。它不断地重复添加相同的字符串。我希望它为每个字符串添加一行。如果我说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);
}