如何在C#中随机化种子

时间:2016-08-23 16:02:02

标签: c# random

我需要在C#中生成随机int。我正在使用时钟时间设置seend。但是,由于rnd.Next()函数可能需要不到一毫秒,如果必须生成一个int列表,这将不起作用。

        for( int i=0; i<5; i++) {
            int max_val = 10; // max value
            var rnd = new Random(DateTime.Now.Millisecond);
            int randind = rnd.Next(0, max_val);
            Console.WriteLine(randind);
        }

输出:
    1     五     五     五     5

如何在不增加丑陋睡眠的情况下以干净的方式随机化种子?

2 个答案:

答案 0 :(得分:3)

在循环外创建您的Random对象,并且不提供种子参数 - 将为您挑选一个。通过将它从循环中取出,rnd.Next()无论如何都会给你一个随机序列。

   var rnd = new Random();     
   for( int i=0; i<5; i++) {
        int max_val = 10; // max value
        int randind = rnd.Next(0, max_val);
        Console.WriteLine(randind);
    }

答案 1 :(得分:1)

Guid对象每次都会保证不同的结果。你可以这样做:

... new Random(Guid.NewGuid()。GetHashCode())