Я пытаюсь создать ряд не дублированных случайных чисел между 1 - 10, я планировал сделать это, сохранив каждое случайное число, которое я сделал в массиве, и затем каждый раз проверяю этот массив на убедитесь, что я еще не использовал номер.Не дублирующиеся случайные числа в C#
Моя проблема заключается в том, что вместо создания разных случайных чисел, таких как 1, 2, 3, я просто продолжаю получать одно и то же случайное число снова и снова.
randomNumber();
Label1.Text = randomRow + "";
randomNumber();
Label2.Text = randomRow + "";
randomNumber();
Label3.Text = randomRow + "";
public int randomNumber()
{
List<int> numbers = new List<int>();
int num = 0;
Random randNum = new Random();
num = randNum.Next(1, 11);
if (numbers.Contains(num))
{
num = randNum.Next(1, 11);
}
else
{
randomRow = num;
numbers.Add(num);
}
return randomRow;
}
Вы должны засеять случайное число: Randomd RND = новый Random (DateTime.Now.Millisecond), например –
Не создавать новый случайный экземпляр каждый раз. Создайте его один раз и сохраните в поле. –
Кроме того, список 'numbers' будет существовать только внутри' randomNumber() ', и каждый вызов будет иметь свой собственный список. Вы уверены, что это то, что вы хотите? Другое дело: вы генерируете только новое случайное число, если сгенерированное уже существует. Вы не проверяете вновь созданный. – ChrisK