【发布时间】:2013-06-26 14:37:30
【问题描述】:
我在这部分的代码中遇到了问题:
Random rand = new Random();
string[] MyRandomArray = choices.OrderBy(x => rnd.Next()).ToArray();
string[] newArray = new string[4];
int num = 0;
for (num = 0; num < 3; num++)
{
newArray[num] = MyRandomArray[num];
}
newArray[num] = "1";
string[] finalArray = newArray.OrderBy(x => rnd.Next()).ToArray();
this.radioButton1.Text = newArray[0];
this.radioButton2.Text = newArray[1];
this.radioButton3.Text = newArray[2];
this.radioButton4.Text = newArray[3];
我要做的是在单选按钮 1、2、3 和 4 的 newArray 中获取不同的数组位置。但是,我在分配的最后一个数组中遇到了问题。它不包含在随机播放中,因此我得到的唯一随机值是单选按钮 1、2 和 3。每当我尝试重新启动程序时,单选按钮 4 保持不变。
【问题讨论】:
-
将您的
for循环更改为for (num = 0; num <= 3; num++)=) -
感谢 andre 的快速响应,我不能这样做,因为我想分配 newArray[num] = "1"
-
但是,在那个时候,
num是 2。你永远不会为newArray[3]设置值! -
我将num赋值为0,然后将3个字符串传递给newArray,并将新数组的最后一个元素赋值给1
-
再次重申:此时,
num为 2。您必须像num+1一样指定才能到达最后一个(第 4 个)元素。