【发布时间】:2016-06-20 13:36:30
【问题描述】:
我是列表和数组的新手,所以我不确定这里发生了什么。我一般理解数组/列表的概念,但我试图在按键时添加新值。问题是它似乎正在将它添加到列表中,但是当我使用“myValue.Count >= someNumber”时,它不会返回最大值,即使它已经超过了它。但是,如果我要使用 for 循环,它可以工作,但我试图以 1 的增量添加它,而不是一次添加。我尝试搜索这个(以及 MSDN),但找不到解决方案。任何帮助,将不胜感激。编辑:对于那些熟悉 Unity 的人,它在“更新”方法中被调用。
void Numbers()
{
var keyDown = Input.GetKeyDown("k");
List<newNumber> numbers = new List<newNumber>();
if (keyDown)
{
numbers.Add(new newNumber(1));
Debug.Log(numbers);
}
if (numbers.Count >= 10)
{
Debug.Log("You reached 10!");
}
class newNumber
{
public int _num = 1;
public newNumber(int num)
{
_num = num;
}
}
【问题讨论】:
-
Numbers() 方法是如何被调用的,每次调用时,您都会创建一个新的 Numbers 列表,该列表将清除之前的列表,因此您的列表的长度始终为 1,因为您添加了一个数字然后下一个号码呼叫您创建清除号码列表的新列表。
-
您似乎遗漏了部分源代码?您如何调用 Numbers 方法?由于每次调用该方法时都调用 new ,因此当到达 if 语句时,列表将永远不会包含多个元素。
-
将列表存储在 Numbers 方法之外作为类变量。每次调用新列表时,您都在创建一个新的空列表。这就是为什么列表永远不会达到 10
-
@MarcusH 就是这样。谢谢!
标签: c#