Я работаю над проектом крепления футбольной лиги на консольном приложении C#. Я пытаюсь выбрать случайные команды из массива, который содержит команды, которые играют у себя дома и вдали. Когда я пытаюсь сгенерировать 9 случайных чисел, генерируется только 8 чисел, а 0 - нет, поэтому код не может разорвать цикл for. Я полагаю, что проблема заключается в том, что если оператор не позволяет генерировать значение по умолчанию такое же количество и Int массива элементов 0.C# Случайное число не генерируется 0
Вот код и выход:
int randomHome; //Random number genetator for choosing a random iteration value from home array which containss the teams which plays at their home
int randomAway; //Random number genetator for choosing a random iteration value from awayarray which containss the teams which plays at away
Random randomNum = new Random();
int[] randomHomeNumArray = new int[home.Length]; //array will hold the randomHome values and home array is the array which is holding the team's iteration values which plays at their home
int[] randomAwayNumArray = new int[away.Length]; //array will hold the randomAway values and away array is the array which is holding the team's iteration values which plays at away
for (int homeArrayCounter = 0; homeArrayCounter < randomHomeNumArray.Length; homeArrayCounter++)
{
randomHome = randomNum.Next(home.Length)
if (!randomHomeNumArray.Contains(randomHome))
{
randomHomeNumArray[homeArrayCounter] = randomHome; //It will hold the randomHome values
Console.WriteLine(homeArrayCounter + ". iterasyon in Home " + randomHomeNumArray[homeArrayCounter]);
}
else
{
homeArrayCounter--;
}
}
Console.WriteLine("\n\n");
for (int awayArrayCounter = 0; awayArrayCounter < randomAwayNumArray.Length; awayArrayCounter++)
{
randomAway = randomNum.Next(randomAwayNumArray.Length);
if (!randomAwayNumArray.Contains(randomAway))
{
randomAwayNumArray[awayArrayCounter] = randomAway; //It holds the random valures from away array which contains the teams which plays at away
Console.WriteLine(awayArrayCounter + ". iterasyon in Away " + randomAwayNumArray[awayArrayCounter]);
}
else
{
awayArrayCounter--;
}
}
Также имейте в виду, что вы генерируете случайный экземпляр без семени.Чтобы обеспечить случайные результаты, вы должны использовать начальное значение в конструкторе. Random rand = new Random (Guid.NewGuid(). GetHashCode()); – CathalMF
@CathalMF Почему высевают текущее время, не достаточно случайное? – Rawling
@ Rawling Это, вероятно, есть. Я только что видел объект Guid на StackOverflow некоторое время назад и использовал его с тех пор. – CathalMF