c# - 列表只返回最后一个值

标签 c# list

<分区>

我用下面的例子总结了这个问题。

static List<double> values = new List<double>();

    static void Main(string[] args)
    {
        doThis();
        foreach (var value in values)
            Console.WriteLine(value);
        Console.ReadLine();
    }



    public static void doThis()
    {
        for (int i = 0; i < 100; i++)
        {
            double value = 0;
            double sum = 0;
            Random rnd = new Random();
            for (int j = 0; j < 10; j++)
            {
                value = rnd.Next(0, 1000);
                sum += value;
            }
            values.Add(sum / 10);
        }
    }

使用此代码,值列表为所有索引返回相同的值。 值 = {rnd, rnd, rnd, rnd..., rnd}。不知何故,最后一个值会覆盖其他值。

但是,如果我一步步调试,它会显示不同的值:values = {rnd0, rnd1, rnd2 ...., rnd99}。

如果您能赐教,我将不胜感激。

最佳答案

您需要创建一个单一的、唯一的Random。如果您在短时间内创建多个实例,它们可能会返回相同的数字序列。

关于c# - 列表只返回最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47772440/

相关文章:

c# - 遍历任务列表 C#

c# - 到存储库或不到存储库

python - 如何从两个嵌套列表制作字典?

c++ - 如何定义自定义类型的通用 std::list?

c# - 我可以在 Linq 查询中选择多个对象吗

c# - 如何从 .NET 风格的 TDD 迁移到 Ruby?

C# 接收数据的问题

c# - MVC3 Json 绑定(bind)错误?

list - 如何在clojure中按元素组合两个向量向量?

python - 根据每个嵌套列表的总和对列表列表进行排序