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

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

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

  [WebMethod] public string GenerateNumber() { Random random = new Random(); return random.Next(?); } 

**更新结束了这样做,

  [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; } 

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

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

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

 Random R = new Random(); return ((long)R.Next (0, 100000 ) * (long)R.Next (0, 100000 )).ToString ().PadLeft (10, '0'); 

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

  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; } 

(1000000000,9999999999)不是随机的 – 你要求它不能以1开头,因此你已经将你的目标基数削减了10%。

Random是一个double,所以如果你想要一个整数,将它乘以1,000,000,000,然后将小数点后的数字放下。

 private void button1_Click(object sender, EventArgs e) { Random rand = new Random(); long randnum2 = (long)(rand.NextDouble() * 9000000000) + 1000000000; MessageBox.Show(randnum2.ToString()); } 
 private static Random random = new Random((int)DateTime.Now.Ticks);//thanks to McAden public long LongBetween(long maxValue, long minValue) { return (long)Math.Round(random.NextDouble() * (maxValue - minValue - 1)) + minValue; } 
  //Ten digits public string CreateRandomNumber { get { //returns 10 digit random number (Ticks returns 16 digit unique number, substring it to 10) return DateTime.UtcNow.Ticks.ToString().Substring(8); } } 

获得没有任何循环(或任何其他长度数字)的10位数字

 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(); } 

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

要生成10位数字,请使用如下:

PinGenerator(10)

我试着写一个快速的:

 private int GetNDigitsRandomNumber(int digits) { var min = 1; for (int i = 0; i < digits-1; i++) { min *= 10; } var max = min * 10; return _rnd.Next(min, max); } 
 Random random = new Random(); string randomNumber = string.Join(string.Empty, Enumerable.Range(0, 10).Select(number => random.Next(0, 9).ToString())); 

我想出了这个方法,因为我不想使用Random方法:

 public static string generate_Digits(int length) { var rndDigits = new System.Text.StringBuilder().Insert(0, "0123456789", length).ToString().ToCharArray(); return string.Join("", rndDigits.OrderBy(o => Guid.NewGuid()).Take(length)); } 

希望这可以帮助。

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

 Random RndNum = new Random(); int RnNum = RndNum.Next(1000000000,9999999999);