Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 随机数的值小于所需值_C#_Winforms_Random - Fatal编程技术网

C# 随机数的值小于所需值

C# 随机数的值小于所需值,c#,winforms,random,C#,Winforms,Random,我正在创建一个随机数生成器,当我运行程序时,显示的数字可能小于所需的值 以下是我正在使用的代码: Random _rand = new Random(); private void RandomNumberGenerator() { int random = _rand.Next(1, 10000); string text; text = "TP0" + random.ToString(

我正在创建一个随机数生成器,当我运行程序时,显示的数字可能小于所需的值

以下是我正在使用的代码:

Random _rand = new Random();

        private void RandomNumberGenerator()
        {
            int random = _rand.Next(1, 10000);
            string text;

            text = "TP0" + random.ToString();
            label1.Text = text;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            RandomNumberGenerator();
        }
每次单击该按钮,它都会生成一个新的随机数,但有时该数可能小于
10000
。示例:我得到了
TP08212
,但下次生成新值时,我得到了
TP0724
。这是怎么发生的

如何防止已显示的数字再次显示?

来自:

调用两个参数版本的
Next
将始终生成[minValue,maxValue]范围内的数字。

阅读文档:


您提供的最小值为1..724大于1。一切正常

如果您需要五位数字,而第二位总是一位或多位,请获取1000..9999范围内的随机数:

int random = _rand.Next(1000, 10000);
如果您想要五位数字,但仍然是从1到更高的范围,请将随机数格式化为四位数字:

text = "TP0" + random.ToString("0000");

设置的范围是1-10000。有什么问题吗?如果希望值超过10000: 随机+=10000,范围为10001-20000


随机的所有值在每个新生成的编号处将其添加到数组中。检查该数组。

更改为
\u rand.Next(1000,10000);
如果希望最小值为1000,最大值为10000
但有时数字可能小于10000
。它总是小于10000。有什么奇怪的?如果希望固定宽度为5位,请使用
random.ToString().padlift(5,'0')
text = "TP0" + random.ToString("0000");