Код: Выделить всё
string[] pettingZoo =
{
"alpacas", "capybaras", "chickens", "ducks", "emus", "geese",
"goats", "iguanas", "kangaroos", "lemurs", "llamas", "macaws",
"ostriches", "pigs", "ponies", "rabbits", "sheep", "tortoises",
};
RandomizeAnimals(pettingZoo);
void RandomizeAnimals(string[] animals
{
Random random = new();
int randomNumber;
for (int i = 0; i < animals.Length; i++)
{
randomNumber = random.Next(0, animals.Length);
if (animals[randomNumber] == string.Empty)
{
for (int j = 0; j < animals.Length; j++)
{
if (animals[j] != string.Empty)
{
pettingZoo[i] = animals[j];
animals[j] = string.Empty;
break;
}
}
}
else
{
pettingZoo[i] = animals[randomNumber];
animals[randomNumber] = string.Empty;
}
Console.WriteLine(pettingZoo[i]);
}
}
Код: Выделить всё
RandomizeAnimals(pettingZoo);
void RandomizeAnimals(string[] animals)
{
string[] pettingZoo = new string[animals.Length];
Random random = new();
int randomNumber;
for (int i = 0; i < animals.Length; i++)
{
randomNumber = random.Next(0, animals.Length);
if (animals[randomNumber] == string.Empty)
{
for (int j = 0; j < animals.Length; j++)
{
if (animals[j] != string.Empty)
{
pettingZoo[i] = animals[j];
animals[j] = string.Empty;
break;
}
}
}
else
{
pettingZoo[i] = animals[randomNumber];
animals[randomNumber] = string.Empty;
}
Console.WriteLine(pettingZoo[i]);
}
}
по мере выполнения он будет повторять значения, которые уже были пустыми в массиве животных. А второй, просто объявив массив внутри метода (даже если он был объявлен в глобальной области видимости, в том же классе, с тем же именем, что и массив внутри метода), это просто сработало, и я не могу объяснить, как
Подробнее здесь: https://stackoverflow.com/questions/787 ... pe-and-loc