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

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

Код для генерации случайных чисел

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

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

Ответы

Ответ 1

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

вам нужен 4-значный код, начинающийся с 1000

Ответ 2

Вместо этого используйте этот код:

private Random _random = new Random();

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

Ответ 3

241 - это четырехзначное число, если вы используете начальные нули: 0241.

Отобразите возвращаемый номер со строкой формата следующим образом:

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

Ответ 4

0 - это то же, что и 0000.

241 совпадает с 0241.

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

Ответ 5

Только один код строки

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

Ответ 6

use: int _min = 1000;

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

Ответ 7

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

Ответ 8

Вы можете считать что-то вроде этого.

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

Приведенный выше код дает результат 0050.

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

Ответ 9

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

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

Ответ 10

        int NoDigits = 4;
        Random rnd = new Random();
        textBox2.Text = rnd.Next((int)Math.Pow(10, (NoDigits - 1)), (int)Math.Pow(10, NoDigits) -1).ToString();