首页 > 解决方案 > 为什么我的循环会产生相同的随机数,除非我在每次迭代结束时暂停?

问题描述

为什么这样做会产生不同的随机数SIZE

for (int index = 0; index < SIZE; index++)
{
    Random rand = new Random();
    numbersArray [index] = rand.Next(0, 100);
    MessageBox.Show(index.ToString());
}

然而,这会产生相同的数字SIZE

for (int index = 0; index < SIZE; index++)
{
    Random rand = new Random();
    numbersArray [index] = rand.Next(0, 100);
}

我唯一的猜测是Random程序暂停时对象会刷新?

标签: c#loopsfor-looprandom

解决方案


    for (int index = 0; index < SIZE; index++)
    {
        Random rand = new Random();
        numbersArray [index] = rand.Next(0, 100);
        //index is not the actual random number!
        MessageBox.Show(index.ToString());
    }

在这段代码中,您向自己展示了数组的索引号,而不是实际的随机数,也许这就是您没有得到预期结果的原因。;)


推荐阅读