Unique 4 digit random number in C#

2019-06-15 01:51发布

问题:

I want to generate an unique 4 digit random number. This is the below code what I have tried:

Code for generating random number

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

The problem is I have received a random no with value 241 which is not a 4 digit number. Is there any problems with the code?

回答1:

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

you need a 4 digit code, start with 1000



回答2:

Use this code instead:

private Random _random = new Random();

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


回答3:

241 is a four digit number, if you use leading zeros: 0241.

Display the returned number with a format string like this:

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



回答4:

0 is the same as 0000.

241 is the same as 0241.

You could format the integer to a string with a leading zero.



回答5:

Just one line code

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


回答6:

use: int _min = 1000;

or use leading 0 in case if you want 0241



回答7:

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


回答8:

You can consider something like this.

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

The above code gives the result 0050.

Similarly you can try converting to string and verify.



回答9:

I suggest to create new list and check if this list contains any of number

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


标签: c# random