Уникальное 4-значное случайное число в C#

Я хочу создать уникальное 4-значное случайное число. Это приведенный ниже код, который я пробовал:

код для генерации случайных чисел!--6-->

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

проблема в том, что я получил случайное нет со значением 241, который не является 4-значный номер. Есть ли проблемы с кодом?

9 ответов


//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.

вы можете отформатировать целое число в строку с ведущим нулем.


использовать: int _min = 1000;

или используйте ведущий 0 в случае, если вы хотите 0241


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.

аналогично вы можете попробовать преобразовать в строку и проверить.


Я предлагаю создать новый список и проверить, содержит ли этот список какой-либо номер

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