我想随机化9个数字,因此每个跟踪中的随机数在之前的尝试中会有不同的数字...这是我的代码
Random num1random = new Random();
label1.Text = num1random.Next(1, 9).ToString();
label2.Text = num1random.Next(1, 9).ToString();
label3.Text = num1random.Next(1, 9).ToString();
label4.Text = num1random.Next(1, 9).ToString();
label5.Text = num1random.Next(1, 9).ToString();
label6.Text = num1random.Next(1, 9).ToString();
label7.Text = num1random.Next(1, 9).ToString();
label8.Text = num1random.Next(1, 9).ToString();
label9.Text = num1random.Next(1, 9).ToString();
答案 0 :(得分:2)
Random.Next
无法保证返回9个不同的值。您应该创建值列表,然后将其随机播放。
Random num1random = new Random();
var numbers = Enumerable.Range(1, 9).OrderBy(item => num1random.Next()).ToList();
label1.Text = numbers[0].ToString();
//other labels
答案 1 :(得分:2)
你真的不想要9个随机数,你真的想要随机顺序从1到9的数字:
Random r = new Random();
var numbers = Enumerable.Range(1,9) // create a sequence of the integers 1 through 9
.OrderBy(x => r.Next()) // randomize the order
.ToArray(); // turn the sequence into an array.
// assign the numbers to the labels
label1.Text = numbers[0];
...
label9.Text = numbers[8];