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?
//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
Use this code instead:
private Random _random = new Random();
public string GenerateRandomNo()
{
return _random.Next(0, 9999).ToString("D4");
}
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);
0 is the same as 0000.
241 is the same as 0241.
You could format the integer to a string with a leading zero.
Just one line code
int num = new Random().Next(1000, 9999);
use: int _min = 1000;
or use leading 0 in case if you want 0241
Random generator = new Random();
string number = generator.Next(1, 10000).ToString("D4");
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.
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);