c #: выбор переменной из нескольких случайным образом - PullRequest
0 голосов
/ 22 ноября 2011

В моей программе несколько независимых переменных типа int. Есть ли способ, которым я могу случайным образом передать значение одного из них в новую переменную int или массив int? Заранее спасибо.

EDIT:

вот псевдокод для демонстрации:

int A1 = 1;
int A2 = 3;
int RESULT = 0;

Random rand = new Random();

 Result = rand.Next(0, A1 || A2)]; //Result holds the value/variable name of  A1 or A2

Ответы [ 3 ]

3 голосов
/ 22 ноября 2011

Вы можете поместить все нужные вам целые в новый массив, а затем выбрать из него случайное значение.Например:

int value1 = 3;
int anotherValue = 5;
int value2 = 1;

int[] selectableInts = new int[3] { value1, anotherValue, value2 };

Random rand = new Random();

int randomValue = selectableInts[rand.Next(0, selectableInts.Length)];
0 голосов
/ 06 января 2019

У меня были некоторые проблемы с самим собой, и я нашел этот поток, но его код предназначен только для Ints, поэтому я застрял на некоторое время, чтобы заставить его работать не только для int.Я думаю, что @David дал мне некоторую идею, как заставить это работать.Это моя версия для использования типов, отличных от целых.

Vector2 down = new Vector2(0, 1);
Vector2 left = new Vector2(-1, 0);
Vector2 right = new Vector2(1, 0);

List<Vector2> possibleDirections = new List<Vector2>()
{ 
    down,
    left,
    right
};

Random random = new Random();

Vector2 selectedRandomDirection = possibleDirections[random.Next(0, possibleDirections.Count)];       

// this is the result
Vector2 direction = selectedRandomDirection;
0 голосов
/ 23 ноября 2011

Как насчет этого:

// create an array of your variables
int[] A = new int[] {1,3};

// Instantiate Random object.
Random rand = new Random();

// Get a value between 0 and the lenght of your array.  
// This is equivalent to select one of the elements of the array.
int index = rand.Next(0,A.Length);

// Get the value from the array that was selected at random.
int Result = A[index];
...