Вывод элементов массива в случайном порядке - C#
Формулировка задачи:
У меня есть вот что:
но после того как я ввожу кол-во элементов например 10, то он пишет что выход за границы диапазона... а как сделать чтобы элементы выводились рандомно и при этом если больше 9 то еще и повторялись?
Заранее спасибо!
public void Init()
{
Mammals a1 = new Mammals("Кошка", "Муська", 3, "Хищные");
Mammals a2 = new Mammals("Дельфин", "Лори", 80, "Китообразные");
Mammals a3 = new Mammals("Тушканчик", "Туня", 0.1, "Грызуны");
Artiodactyls b1 = new Artiodactyls("Лашадь", "Стрела", 90, false);
Artiodactyls b2 = new Artiodactyls("Корова", "Ночка", 100, true);
Artiodactyls b3 = new Artiodactyls("Олень", "Иммануил", 150, true);
Birds c1 = new Birds("Орел", "Боря", 2, 100);
Birds c2 = new Birds("Синица", "Синька", 0.3, 40);
Birds c3 = new Birds("Ворон", "Дрон", 2, 50);
animArr[0] = a1;
animArr[1] = a2;
animArr[2] = a3;
animArr[3] = b1;
animArr[4] = b2;
animArr[5] = b3;
animArr[6] = c1;
animArr[7] = c2;
animArr[8] = c3;
Console.WriteLine("Введите количество элементов массива:");
int numElementOfArr = Convert.ToInt32(Console.ReadLine());
int i = 0;
while (i < numElementOfArr)
{
int temp = r.Next(numElementOfArr);
if (animArr[temp] != null)
{
animArr[temp] = animArr[r.Next(9)];
}
for (i = 0; i < numElementOfArr; i++)
{
Console.WriteLine(Convert.ToString(animArr[i]));
}
}
}Решение задачи: «Вывод элементов массива в случайном порядке»
textual
Листинг программы
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
int[] mas = { 1, 2, 3, 4 };
mas = mas.OrderBy(x => rand.Next()).ToArray();
Console.WriteLine(string.Join("\n", mas));
Console.ReadKey();
}
}