it-swarm.com.ru

Уникальное четырехзначное случайное число в C #

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

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

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

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

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

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

36
Brij Raj Singh - MSFT

Используйте этот код вместо:

private Random _random = new Random();

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

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

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

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

7
x0n

0 совпадает с 0000.

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

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

5
Steve Wellens

Всего одна строка кода

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

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

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

2
amit dayama
Random generator = new Random();
string number = generator.Next(1, 10000).ToString("D4");
2
Muhammad Awais

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

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

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

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

0
Baskar

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

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