数组的随机值?

时间:2015-07-18 16:57:43

标签: c# arrays visual-studio-2012

我正在为我的阵列寻求帮助。把它放在上下文中我试图创建一个控制台应用程序,随机生成一个4位代码供用户猜测。

要做到这一点,我需要一个[3]数组,并且需要为其分配随机数。

        int[] secretCode = new int[3];

        secretCode[0] = 
        secretCode[1] = 
        secretCode[2] = 
        secretCode[3] = 

我担心的是我会在这里使它们产生随机数?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用Linq和Random

Random rnd = new Random();
int[] secretCode = 
    Enumerable.Repeat(0, 4).Select(i => rnd.Next(1000, 10000)).ToArray();

或更传统

int SIZE = 4;
Random rnd = new Random();
int[] secretCode = new int[SIZE]; 
for (int i = 0; i < SIZE; i++)
{
    secretCode[i] = rnd.Next(1000, 10000);
}

请注意,可能会多次创建相同的代码。该解决方案假设您需要1000..9999范围内的某些内容(10000是独占上限),因为代码是4位数。如果您还允许较小的数字,只需调整选择部分。

作为附注,不要在select中创建一个Random的新实例,因为它可能会根据系统时间重新接种到同一个种子,从而导致相同的“随机”数字反复出现。随机性很快,但加密性不强。如果您需要加密有效的随机性,请使用RNGCryptoServiceProvider代替Random。