2015-11-13 26 views
1

我是新的C#和具有下面的一段代码列表随机整数: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。

有没有一种简单的方法来做到这一点?

+0

你需要一个Random类的实例,比如它叫'random'。然后,只需调用'random.Next(ids.Count)'并将其用作索引。 –

回答

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

@GiorgiNakeuri如上所述,第二个参数是_exclusive_上限。因此'Next(0,1)'将始终生成'0'。请参见[msdn](https://msdn.microsoft.com/en-us/library/2dx6wyd4%28v=vs.110%29.aspx) –

1

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

var r = new Random(); 
for (var i=0; i<50; i++) 
    Console.WriteLine("Random ID:" + ids[r.Next(0, ids.Length)]); 
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); 
}