您好我的部分代码遇到了问题。我有一个字典,键是一个数字,键的值是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,但是根本没有字典中的值。有没有人有任何建议。
答案 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方法中使用。如果您在方法中声明它,则会在每次调用时重新创建它,而不会再出现问题。