随机数生成器仅在C#中给定的少数数字之间进行选择

时间:2017-02-11 11:17:06

标签: c# random

我知道如何选择两个数字之间的随机数。但是我不知道如何选择我告诉它的随机数。

这就是我想要做的。我有5个整数。

int Hamburger = 5;
int Sandwich = 7;
int ChickenSalad = 10;
int Pizza = 15;
int Sushi = 20;

5,7,10,15,20是每种食物的价格,我想这样做,以便从这些选择的数字中选择一个随机数。 5,7,10,15,20。

我是C#的新手,所以我对此并不太了解。我发现了这个

randomNoCorss = arr[r.Next(arr.Length)];

在另一篇文章中,但我不明白,我不知道如何把它放在我的代码中。

4 个答案:

答案 0 :(得分:4)

您必须创建一个可能值的数组,然后随机生成该数组的索引:

int Hamburger = 5;
int Sandwich = 7;
int ChickenSalad = 10;
int Pizza = 15;
int Sushi = 20;

Random r = new Random();
var values = new[] { Hamburger, Sandwich, ChickenSalad, Pizza, Sushi };
int result = values[r.Next(values.Length)];

这样做是它需要所有给定的值并将它们放在一个数组中。然后它在04之间生成一个随机整数,并使用该整数从数组中获取一个值,使用生成的整数作为数组的索引。

答案 1 :(得分:1)

完整代码是:

Random r = new Random();
int[] priceArray = new int[] { 5, 7, 10, 15, 20 };
int randomIndex = r.Next(priceArray.Length);
int randomPrice = priceArray[randomIndex];

答案 2 :(得分:0)

您需要在数组中添加值,然后可以从该数组中选择一个随机数

  int[] myNumbers = new int[] { 5, 7, 10, 15, 20 };
  var random = new Random();
  var numberResult = myNumbers[random.Next(5)];

答案 3 :(得分:-1)

您可以在LINQ中执行此操作:

int[] intArray = new int[] { 5, 7, 10, 15, 20 };

int result = intArray.OrderBy(n => Guid.NewGuid()).Select(x => x).Take(1)
            .SingleOrDefault();

结果将是随机的,基于您在变量intArray中声明的整数数组。

或者你可以通过获取数组的随机索引来做到这一点:

 int[] intArray = new int[] {5, 7, 10, 15, 20 };
 Random rndom = new Random();
 int index = rndom.Next(0, intArray.Length - 1); //Since int array always starts at 0.
 int intResult = intArray[index];

如果您需要更多说明,请告诉我。