C#从每个循环中的列表中获取随机整数

时间:2015-11-13 11:20:10

标签: c# random

我是C#的新手并拥有以下代码:

int[] ids = { 190483, 184943, 192366, 202556, 169051, 177388, 170890, 146562, 189509 };

for (var i=0; i<50; i++)
{
    int randomID = *randomNumberFromIDList*;
    Console.WriteLine("Random ID:" + randomID);
}

正如您所看到的,我要做的就是每次循环分配并在列表中显示随机ID,并将randomID设置为int。

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:3)

创建Random个实例,并调用Next(int, int)函数获取inclusive lowest numberexclusive highest number之间的数字:

int[] ids = { 190483, 184943, 192366, 202556, 169051, 177388, 170890, 146562, 189509 };

var random = new Random();
for (var i=0; i<50; i++)
{
    int randomID = ids[random.Next(0, ids.Length)];
    Console.WriteLine("Random ID:" + randomID);
}

答案 1 :(得分:1)

您可以使用Random类来生成0和数组长度之间的随机数:

var r = new Random();   
for (var i=0; i<50; i++)
    Console.WriteLine("Random ID:" + ids[r.Next(0, ids.Length)]);

答案 2 :(得分:0)

您可以使用随机生成从0开始到数组大小的索引,使用此索引可以访问数组的位置并获取随机ID。

int[] ids = { 190483, 184943, 192366, 202556, 169051, 177388, 170890, 146562, 189509 };

var random = new Random();

for (var i = 0; i < 50; i++)
{
     int arrayPos = random.Next(0, ids.Count() - 1);
     int randomID = ids[arrayPos];
     Console.WriteLine("Random ID:" + randomID);
}