Мне нужно создать блок уникальных строк, чтобы протестировать другой проект, над которым я работаю.
Итак, я создал простую программу для генерации случайной строки длиной X.
Проблема в том, что если я вызову его один раз, я получу случайную строку, если я вызову ее снова (например, в цикле for), я получу ту же строку для всего выполнения цикла.
У меня такое ощущение, что он кэшируется или что-то в этом роде, но я не знал, что .net сделал это, и я просто запутался в этом моменте.
телефонный код:
StreamWriter SW = new StreamWriter("c:\\test.txt");
int x = 100;
while (x >0)
{
SW.WriteLine(RandomString(20));
x--;
}
вот метод:
private static string RandomString(int Length)
{
StringBuilder sb = new StringBuilder();
Random randomNumber = new Random();
for (int i = 0; i <= Length; ++i)
{
int x = randomNumber.Next(65, 122);
sb.Append(Convert.ToChar(x));
}
return sb.ToString();
}
и вот вывод:
"VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
..................
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB"
Так что я думал, что Random.next () всегда будет возвращать новое случайное число?