C# 中的随机序列生成器



我想用 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();
}
}

要澄清您的解决方案出了什么问题:

在循环中,您不断重新分配ecran的值。发短信。

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 的价值。每次迭代的文本。

通过在等号前面添加加号来修复ecran.Text += ", " + LOGIC

发生这种情况是因为您将序列值分配给循环中的ecran.Text。相反,您应该创建序列的字符串表示形式,并在末尾分配它。

使用Shuffle<T>问答中的方法:

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);

相关内容

  • 没有找到相关文章

最新更新