我的程序中有几个独立的int变量。有没有办法可以将其中一个的值随机提供给一个新的int变量或一个int数组?在此先感谢。
编辑:
这是一个伪代码来演示:
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
答案 0 :(得分:3)
您可以将要选择的所有整数放入新数组中,然后从中选择一个随机值。例如:
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)];
答案 1 :(得分:0)
这个怎么样:
// 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];
答案 2 :(得分:0)
我自己遇到了麻烦,找到了这个线程,但是它的代码仅适用于Ints,因此我被困了一段时间以使其可以用于其他类型的对象。 我认为@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;