如何在C#中生成一个随机的10位数字?

Hri*_*kan 20 .net c# asp.net random

我正在使用C#,我需要生成一个随机的10位数字.到目前为止,我很幸运找到了表明最小值的例子.我将如何生成一个10位数的随机数,可以从0开始,(最初,我希望,random.Next(1000000000,9999999999)但我怀疑这是我想要的).

我的代码现在看起来像这样:

    [WebMethod]
    public string GenerateNumber()
    {
        Random random = new Random();
        return random.Next(?);
    }
Run Code Online (Sandbox Code Playgroud)

**更新结束了这样做,

    [WebMethod]
    public string GenerateNumber()
    {
        Random random = new Random();
        string r = "";
        int i;
        for (i = 1; i < 11; i++)
        {
            r += random.Next(0, 9).ToString();
        }
        return r;
    }
Run Code Online (Sandbox Code Playgroud)

A G*_*zal 11

使用此选项可以创建任何指定长度的随机数字

 public string RandomDigits(int length)
    {
        var random = new Random();
        string s = string.Empty;
        for (int i = 0; i < length; i++)
            s = String.Concat(s, random.Next(10).ToString());
        return s;
    }
Run Code Online (Sandbox Code Playgroud)

  • 如果您打算多次使用此功能,请不要使用它。随机对象应该在函数范围之外声明,因为每次它都会创建一个新的 Random 对象实例,这可能意味着生成相同的数字。见 http://stackoverflow.com/a/5264434/6099813 (3认同)

Yah*_*hia 10

尝试(虽然不是绝对准确)

Random R = new Random();

return ((long)R.Next (0, 100000 ) * (long)R.Next (0, 100000 )).ToString ().PadLeft (10, '0');
Run Code Online (Sandbox Code Playgroud)


Ray*_*oal 5

如果你想要十个数字,但你允许以0开头,那么听起来你想要生成一个字符串,而不是一个长整数.

生成一个10个字符的字符串,其中每个字符从"0"中随机选择."9".


Men*_*gis 5

要在没有任何循环的情况下获取任意数字,请使用Random.Next适当的限制 [100...00, 9999...99]。

private static readonly Random _rdm = new Random();
private string PinGenerator(int digits)
{
   if (digits <= 1) return "";

   var _min = (int)Math.Pow(10, digits - 1);
   var _max = (int)Math.Pow(10, digits) - 1;
   return _rdm.Next(_min, _max).ToString();
}
Run Code Online (Sandbox Code Playgroud)

该函数计算第 n 位数字的下限和上限。

要生成 10 位数字,请像这样使用:

PinGenerator(10)