Je veux générer un nombre aléatoire unique à 4 chiffres. Voici le code ci-dessous ce que j'ai essayé:
Code pour générer un nombre aléatoire
//Generate RandomNo
public int GenerateRandomNo()
{
int _min = 0000;
int _max = 9999;
Random _rdm = new Random();
return _rdm.Next(_min, _max);
}
Le problème est que j'ai reçu un non aléatoire avec la valeur 241
qui n'est pas un nombre à 4 chiffres. Y at-il des problèmes avec le code?
//Generate RandomNo
public int GenerateRandomNo()
{
int _min = 1000;
int _max = 9999;
Random _rdm = new Random();
return _rdm.Next(_min, _max);
}
vous avez besoin d'un code à 4 chiffres, commencez par 1000
Utilisez ce code à la place:
private Random _random = new Random();
public string GenerateRandomNo()
{
return _random.Next(0, 9999).ToString("D4");
}
0 est identique à 0000.
241 est identique à 0241.
Vous pouvez formater le nombre entier en une chaîne avec un zéro non significatif.
Juste un code de ligne
int num = new Random().Next(1000, 9999);
utilisez: int _min = 1000;
ou utilisez le préfixe 0 au cas où vous voudriez 0241
Random generator = new Random();
string number = generator.Next(1, 10000).ToString("D4");
Vous pouvez envisager quelque chose comme ça.
int length = 4;
int number = 50;
string asString = number.ToString("D" + length);
Le code ci-dessus donne le résultat 0050.
De même, vous pouvez essayer de convertir en chaîne et de vérifier.
Je suggère de créer une nouvelle liste et de vérifier si cette liste contient un nombre
var IdList = new List<int>();
do
{
billId = random.Next(1, 9000);
} while (IdList.Contains(billId));
IdList.Add(billId);