首页 新闻 会员 周边

一个关于数组的奇怪问题

0
悬赏园豆:10 [已解决问题] 解决于 2010-05-24 19:57

 

代码如下:

 string[] array = new string[6];
        for (int i = 0; i < 6; i++)
        {
            //随机产生一个三位数
            string cell_value = string.Empty;
            Random r = new Random();
            for (int k = 0; k < 3; k++)
            {
                int num = r.Next(0, 10);//随即产生介于0-9的数字
                cell_value += num.ToString();
            }
            array[i] = cell_value;
            Response.Write(array[i]+"<br>");
        }

 

其中用random随机生成一个三位数,为什么这个数组最后每个元素的值都是同一个数呢,而且是随机生成的最后一个数,大家帮帮忙,无比感激!!!

问题补充: 更为奇怪的是,在调试的时候,一步一句执行的话得到的数组是六个随即生成的三位数,但是直接按F5执行的话就只是六个相同的三位数,并且这个三位数是最后随即生成的那个数
云千禧鹤的主页 云千禧鹤 | 初学一级 | 园豆:170
提问于:2010-05-24 17:25
< >
分享
最佳答案
0

.NET下生成随机数和系统当前时间有关系,如果时间接近,那么生成的随机数就可能相近甚至完全一样,你可以在生成随机数之前,增加Thread.Sleep(20);试一下

收获园豆:10
上不了岸的鱼 | 老鸟四级 |园豆:4613 | 2010-05-24 18:19
更为奇怪的是,在调试的时候,一步一句执行的话得到的数组是六个随即生成的三位数,但是直接按F5执行的话就只是六个相同的三位数,并且这个三位数是最后随即生成的那个数,所以不是你所说的原因
云千禧鹤 | 园豆:170 (初学一级) | 2010-05-24 18:30
非常感谢的确是您所说的原因,呵呵,太谢谢了
云千禧鹤 | 园豆:170 (初学一级) | 2010-05-24 19:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册