我想在c#中构建一个序列随机数移动应用程序。我想从两个不同的文本框中检索区间中的最小和最大数字,然后单击生成按钮以在新文本框中显示所有数字的随机序列。
我的代码只显示一个数字。怎么了?
感谢。
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
int seed = 345;
var result = "";
int min = Convert.ToInt32(textBox.Text);
int max = Convert.ToInt32(textBox2.Text);
Random r3 = new Random(seed);
for (int i = min; i < max; i++)
{
ecran.Text = (/*"," + r3.Next(min, max)*/i).ToString();
}
}
答案 0 :(得分:4)
澄清您的解决方案出了什么问题:
在循环内部,你不断重新分配ecran.Text的值。
即
1st loop cycle > ecran.Text = ", " + 77
2nd loop cycle > ecran.Text = ", " + 89
//Value of ecran.Text after 1st cycle is ", 77"
//Value of ecran.Text after 2nd cycle is ", 89"
每次迭代覆盖ecran.Text的值。
通过在等于ecran.Text += ", " + LOGIC
答案 1 :(得分:2)
这是因为您在循环中将序列值分配给int min = Convert.ToInt32(textBox.Text);
int max = Convert.ToInt32(textBox2.Text);
if (max < min) return;
var sequence = Enumerable.Range(min, max-min+1).ToList();
Shuffle(sequence);
ecran.Text = string.Join(",", sequence);
。相反,您应该创建序列的字符串表示,并在结尾处分配它。
使用此Q&amp; A中的Shuffle<T>
方法:
if(editText1!!.getText().length == 0 || editText2!!.getText().length == 0 ){
button1!!.setEnabled(false)
}