我如何将数组的一部分设置为C#中的随机值



我是编程的新手,所以请忍受我!

我试图将数组的部分设置为随机值,但是每当我运行程序时,它都会将数组的所有部分设置为相同的值。我希望它们都不同。

这是我的代码:

int[] hello_array = new int[10];
        Console.WriteLine("Here");
        Random rndm = new Random();
        for (int j = 0; j < hello_array.Length; j++)
        {
            hello_array[j] = rndm.Next(99);
        }
        Console.WriteLine("Now Here");
        for (int i = 0; i < hello_array.Length; i++)
        {
            Console.WriteLine("hahahaha look at this " + hello_array[0]);

我可能完全缺少它,但是我无法说出我的代码出了什么问题!有人可以告诉我如何做到这一点,以便整个数组的所有十个部分都会产生不同的随机数?

更改以下内容:

 Console.WriteLine("hahahaha look at this " + hello_array[0]);

 Console.WriteLine("hahahaha look at this " + hello_array[i]);

您在每个循环中都在数组中打印相同的元素。

具有相同数量的行,您可以使用一些较新的C#功能来完成相同的结果(但没有所有混乱的细节)。

您将定义一个采用两个参数的通用方法:a lambda表达式(例如, () => random.Next(99))和要生成的元素数。在方法内,您将使用yield关键字返回工厂生成的新元素。

Random random = new Random();
foreach (var element in Generate(() => random.Next(99), 10))
{
    Console.WriteLine(element);
}

public static IEnumerable<T> Generate<T>(Func<T> factory, int elements)
{
    for (int generated = 0; generated < elements; generated++)
    {
        yield return factory();
    }
}

最新更新