Windows Forms中如何获取Random类选中的数组索引?
获取Random生成的数组索引(Windows Forms小测验场景)
嘿,这个问题其实超简单的!你只需要把随机生成的索引单独存成变量,再用它去取数组值就好啦——这样既能拿到你需要的二进制数值,又能把索引当作正确答案保留下来。
看我给你改好的代码:
public void generateBinary3bit(int[] numbers, Form1 f1) { Random rand = new Random(); // 先把随机索引存到ans里,这就是你要的正确答案啦 int ans = rand.Next(0, 7); // 再用这个索引去取数组中的二进制值 int mynum = numbers[ans]; // 接下来你就可以把ans用在测验逻辑里了,比如存到窗体的变量或者显示出来 // 举个例子:f1.CorrectAnswer = ans; }
另外给你提两个小建议,让代码更靠谱:
- 别在方法里每次都new Random()!如果这个方法被快速连续调用,系统时钟的精度问题可能会导致生成重复的随机数。最好把Random实例声明成Form类的成员变量,比如在Form1里写
private Random _rand = new Random();,然后在这个方法里直接用_rand.Next(...),随机性会稳定很多。 - 要是以后数组长度变了,别硬写7,用
rand.Next(numbers.Length)代替rand.Next(0,7),这样能避免索引越界的问题,代码更健壮。
内容的提问来源于stack exchange,提问作者Johnstonn
相关产品推荐
相关产品推荐

