c#:随机选择几个变量

时间:2011-11-22 12:39:56

标签: c#-4.0 random int

我的程序中有几个独立的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

3 个答案:

答案 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;