我想要做的是生成一个随机整数数组,其中随机值介于最小值和最大值之间。
到目前为止,我想出了以下代码:
int Min = 0;
int Max = 20;
int[] test2 = new int[5];
Random randNum = new Random();
foreach (int value in test2)
{
randNum.Next(Min, Max);
}
但它还没有完全工作。 我认为我可能只是漏掉了一行或其他什么。 有人能帮我推进正确的方向吗?
我想要做的是生成一个随机整数数组,其中随机值介于最小值和最大值之间。
到目前为止,我想出了以下代码:
int Min = 0;
int Max = 20;
int[] test2 = new int[5];
Random randNum = new Random();
foreach (int value in test2)
{
randNum.Next(Min, Max);
}
但它还没有完全工作。 我认为我可能只是漏掉了一行或其他什么。 有人能帮我推进正确的方向吗?
您从未给test2
数组赋值。尽管您已声明了它,但所有的值都将为0。以下是如何为数组的每个元素分配指定区间内的随机整数:
int Min = 0;
int Max = 20;
// this declares an integer array with 5 elements
// and initializes all of them to their default value
// which is zero
int[] test2 = new int[5];
Random randNum = new Random();
for (int i = 0; i < test2.Length; i++)
{
test2[i] = randNum.Next(Min, Max);
}
或者你可以使用 LINQ:
int Min = 0;
int Max = 20;
Random randNum = new Random();
int[] test2 = Enumerable
.Repeat(0, 5)
.Select(i => randNum.Next(Min, Max))
.ToArray();
foreach
循环中这样做了,那么在迭代时集合也会被修改。 - Kieren Johnstoneforeach
是为了访问数组的元素,你不能用这种方式填充它们。 - Kieren Johnstone