如果我使用foreach
循环将值随机分配给数组,它会分配所有 0。但是,如果将其更改为正常for
循环,则可以正常工作。像下面
Random random = new Random();
int[] a = new int[10];
for (int i = 0; i < 10; i++)
{
a[i] = random.Next(0, 10);
}
foreach (var item in a)
Console.WriteLine(item);
输出很好,值是随机的
5
8
...
但是,如果我使用 foreach 循环分配随机值,则第一个数组项具有随机值,其余的始终为 0.... 为什么会这样?
foreach (var item in a)
{
a[item] = random.Next(0, 10);
}
foreach (var item in a)
Console.WriteLine(item);
这会产生
8
0
0
0... all zeros follow
为什么正常的 for 循环可以正常工作,而 foreach 循环却不行?相同的 foreach 循环可以很好地打印值吗?
谢谢