C#中唯一的4位随机数

我想生成一个唯一的4位数随机数。 这是我尝试的下面的代码:

生成随机数的代码

//Generate RandomNo public int GenerateRandomNo() { int _min = 0000; int _max = 9999; Random _rdm = new Random(); return _rdm.Next(_min, _max); } 

问题是我收到了一个值为241的随机数,这不是一个4位数字。 代码有问题吗?

 //Generate RandomNo public int GenerateRandomNo() { int _min = 1000; int _max = 9999; Random _rdm = new Random(); return _rdm.Next(_min, _max); } 

你需要一个4位数的代码,从1000开始

请改用此代码:

 private Random _random = new Random(); public string GenerateRandomNo() { return _random.Next(0, 9999).ToString("D4"); } 

241是四位数字,如果使用前导零:0241。

使用如下格式字符串显示返回的数字:

String.Format("{0:0000}", n);

0与0000相同。

241与0241相同。

您可以将整数格式化为前导零的字符串。

use:int _min = 1000;

如果你想要0241,请使用前导0

 Random generator = new Random(); string number = generator.Next(1, 10000).ToString("D4"); 

只需一行代码

 int num = new Random().Next(1000, 9999); 

你可以考虑这样的事情。

 int length = 4; int number = 50; string asString = number.ToString("D" + length); 

上面的代码给出了结果0050。

同样,您可以尝试转换为字符串并validation。

我建议创建新列表并检查此列表是否包含任何数字

 var IdList = new List(); do { billId = random.Next(1, 9000); } while (IdList.Contains(billId)); IdList.Add(billId);