列表C#中的随机数

时间:2013-11-28 01:11:39

标签: c# random

您好我的部分代码遇到了问题。我有一个字典,键是一个数字,键的值是1-8之间的随机整数列表。由于某种原因,在添加第一个键和值之后,所有其他键的值与第一个键的值相同。这是现在的输出,这是错误的。

1: 1, 8, 6, 1, 4, 7, 2 ,4
2: 1, 8, 6, 1, 4, 7, 2 ,4
3: 1, 8, 6, 1, 4, 7, 2 ,4
4: 1, 8, 6, 1, 4, 7, 2 ,4
5: 1, 8, 6, 1, 4, 7, 2 ,4
6: 1, 8, 6, 1, 4, 7, 2 ,4
7: 1, 8, 6, 1, 4, 7, 2 ,4
8: 1, 8, 6, 1, 4, 7, 2 ,4

一旦将8个随机数添加到列表中,我尝试清除arrayList,但是根本没有字典中的值。有没有人有任何建议。

3 个答案:

答案 0 :(得分:2)

private List<int> randomList() {
    for (int i = 1; i < 9; i++) {
        if (randomNum.Count < 9) {
            randomNum.Add(random.Next(1, 9));
        }
    }
    return randomNum;
}

第一次迭代后,randomNum.Count将永远不会返回false,因此它不再计算它。你可以像这样手动重置它:

for (int i = 1; i < 9; i++) {
     dic.Add(i, randomList());
     randomNum = new List<int>();
}

答案 1 :(得分:1)

尝试将此行添加到randomList()方法的开头:

randomNum = new List<int>();

答案 2 :(得分:0)

未提及的一点:始终考虑您声明变量的位置以及原因。这样做可以帮助您避免这种意外后果。在这种情况下,randomNum列表仅在randomList方法中使用。如果您在方法中声明它,则会在每次调用时重新创建它,而不会再出现问题。