Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 方法返回两个随机整数总是返回相同的整数两次_C#_Random - Fatal编程技术网

C# 方法返回两个随机整数总是返回相同的整数两次

C# 方法返回两个随机整数总是返回相同的整数两次,c#,random,C#,Random,我知道如何在VB中做到这一点,但我用C编写代码,所以我需要弄清楚如何得到两个不同的radomized整数1-8,我似乎无法让它工作,我得到了相同的一次又一次,甚至我越努力。我读了很多,但我找不到更具体的帮助,因为大多数人只需要一个rnd号码,我可以做到…简单 我所编码的是你,它没有给我两个不同的数字 public string GetFruitCombination() { Random fruitcombo = new Random(); int

我知道如何在VB中做到这一点,但我用C编写代码,所以我需要弄清楚如何得到两个不同的radomized整数1-8,我似乎无法让它工作,我得到了相同的一次又一次,甚至我越努力。我读了很多,但我找不到更具体的帮助,因为大多数人只需要一个rnd号码,我可以做到…简单

我所编码的是你,它没有给我两个不同的数字

    public string GetFruitCombination()
    {
        Random fruitcombo = new Random();
        int indexone = fruitcombo.Next(0, 8);
        Random fruitcombotwo = new Random();
        int indextwo = fruitcombotwo.Next(0, 8);

        string firstfruit = m_fruit[indexone];
        string secondfruit = m_fruit[indextwo];

        return string.Format("{0}&{1}", firstfruit, secondfruit);
    }
必须有一个更简单的方法来获得2个不同的rnd号码,对吗?所以我需要有人把我推向正确的方向

提前感谢您的任何想法和帮助


//关于

不要创建第二个Random实例,只需使用同一个实例两次

默认种子是基于时间的,因此在如此快速地创建两个种子时,它们很有可能都具有相同的种子

   public string GetFruitCombination() 
    { 
        Random fruitcombo = new Random(Environment.TickCount); 
        int indexone = fruitcombo.Next(0, 8); 
        int indextwo = fruitcombo.Next(0, 8); 

        string firstfruit = m_fruit[indexone]; 
        string secondfruit = m_fruit[indextwo]; 

        return string.Format("{0}&{1}", firstfruit, secondfruit); 
    } 

虽然就我个人而言,我使用的是随机的静态版本,所以种子是在启动时设置的,然后每次使用都只是下一次。RNGCryptoServiceProvider示例中还有一个更好的随机变量

谢谢!!我快疯了:用同样的随机数发生器。搜索随机数副本C.,例如InstanceFW:Java的随机默认种子实现比这更好,但仍有可能陷入退化的情况。。