現在、乱数(1〜20)を生成し、各数値がランダムに生成された回数を数えています。で、textBox1
生成する数値の量を選択します。最終結果を複数行で表示しますtextBox2
。私が経験している問題は、ボタンをもう一度クリックするたびに、数値がランダムに生成された回数がリセットされることです。
ボタンをx回クリックして、カウントをリセットせずにランダムに生成された回数をカウントできますか? 私は配列の助けを借りてこれを具体的にしようとしています。
コード
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Random r = new Random();
private void button1_Click(object sender, EventArgs e)
{
var n = int.Parse(this.textBox1.Text);
var y =
Enumerable
.Range(0, n)
.Select(x => r.Next(20) + 1)
.ToArray();
var sum = y.Sum();
var avg = (double)sum / (double)n;
var frequency = y.ToLookup(x => x);
textBox2.Text = String.Join(Environment.NewLine, new[]
{
"Number of times an integer was randomly generated",
String.Format("{0} {1}", sum, avg),
}.Concat(Enumerable
.Range(1, 20)
.Select(x => String.Format("{0} ({1})", x, frequency[x].Count()))));
}
}