ループを使用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 ループで値が正常に出力されますか?
ありがとうございました