这是我的代码。我不明白为什么循环循环时n变量不会改变。现在它只是写第一个随机字母并做十次,而不是每次循环都是随机的。
string[] alfa = new string[16]{
"a", "b","c","d","e","f","g","h","i","j","k","l","m","n","o","p"
};
using (var tw = new StreamWriter(@"../../data/" +
NewUsername.Text + "," + NewPassword.Text + "/ReFectorPassword.txt", true))
{
for (var i = 0; i < 10; i++)
{
Random r = new Random();
int n = r.Next(16);
randomString = alfa[n];
tw.Write(randomString );
}
}
一个技巧是通过将seed
添加到变量DateTime.Now.Ticks
来手动创建i
:
Random r = new Random((int)DateTime.Now.Ticks + i);