Создание массива случайных целых чисел

#c# #unity3d #probability-theory

#c# #массивы #Случайный #int

Вопрос:

То, что я пытаюсь, — это сгенерировать массив случайных значений int, где случайные значения берутся между min и max.

Пока я придумал этот код:

 int Min = 0;
int Max = 20;

int[] test2 = new int[5];
Random randNum = new Random();
foreach (int value in test2)
{
    randNum.Next(Min, Max);
}
  

Но он еще не полностью работает.
Я думаю, что мне может не хватать всего 1 строки или чего-то в этом роде.
Кто-нибудь может мне помочь, подтолкнув меня в правильном направлении?

Комментарии:

1. На самом деле вы не присваиваете значение своему массиву на каждой итерации.

Ответ №1:

Вы никогда не присваиваете значения внутри test2 массива. Вы объявили его, но все значения будут равны 0. Вот как вы могли бы назначить случайное целое число в указанном интервале для каждого элемента массива:

 int Min = 0;
int Max = 20;

// this declares an integer array with 5 elements
// and initializes all of them to their default value
// which is zero
int[] test2 = new int[5]; 

Random randNum = new Random();
for (int i = 0; i < test2.Length; i  )
{
    test2[i] = randNum.Next(Min, Max);
}
  

в качестве альтернативы вы могли бы использовать LINQ:

 int Min = 0;
int Max = 20;
Random randNum = new Random();
int[] test2 = Enumerable
    .Repeat(0, 5)
    .Select(i => randNum.Next(Min, Max))
    .ToArray();
  

Комментарии:

1. этот первый дал мне еще больше ошибок, и пока мои знания о c # только около 2 недель назад, хе-хе. второй вариант работает как шарм. спасибо за это

Ответ №2:

Вам нужно присвоить результат random.next текущему индексу вашего массива в цикле

Комментарии:

1. Вы не можете добавлять в массив, это список .. и если бы вы сделали это в foreach цикле, коллекция была бы изменена во время итерации.

2. Извините, но это все еще неправильный и плохой ответ: использование foreach is для доступа к элементам массива, вы не можете заполнить их таким образом

3. Ах, я полностью проигнорировал цикл foreach в исходном вопросе.