为什么列表中的元素计数显示为零?

时间:2017-01-16 21:34:39

标签: c#

我正在尝试学习某些在线课程中的c#编程,以帮助完善我的知识。事实证明这是极具挑战性的。我似乎认为我理解,然后,当我坐下来练习练习时,我经常感到难过。我倾向于喜欢这样,因为它迫使我学习如何研究和解决我们出现的问题 - 对我而言,我通常都会这样学习。

话虽如此,但我似乎无法理解一些障碍。如果我想看看它们,我会得到实际练习的答案,但我不想这样做 - 因为我觉得我的学习方式很少。

我真的不想分享任务是什么,因为我不想帮助解决它 - 而且我认为任何试图帮助我的人都不需要知道这一点。

在下面的代码中,我想帮助理解实际发生的事情。我知道,我知道,这听起来非常普遍,但我太新了,不知道如何恰当地表达我的问题。

我想我的问题可以归结为:为什么我在' listNumbers'列表显示零?

我的逻辑是:

我要求用户输入用连字符分隔的输入。 我把那个输入并在连字符处拆分成一个字符串数组。 我创建一个空列表。 我循环遍历字符串数组的每个元素,转换为int32,并添加到列表中。 我放了一个计数器来查看它循环的次数 - 根据最初输入的数量准确显示。 我使用第二个计数器遍历列表中的每个元素,以查看它循环的次数 - 这似乎也可以根据最初输入的数量准确显示。

尽管如此,我对列表中元素的计数显示为零 - 就像列表中没有元素一样。

怎么可能?

有人可以解释一下为什么列表中的元素数量显示为零?

非常感谢你们。

(290<<2)=1160

2 个答案:

答案 0 :(得分:6)

您只为变量指定了一个值&#34; count&#34;当列表中没有元素时。当地&#34;计数&#34;您声明的变量在列表增长时不会自动更新;只有&#39; Count&#39;列表上的属性就是这样做的。

您可能想要的不是列表中的元素数量为空时,而是填充后列表中元素的数量,在这种情况下,您需要获取列表的计数添加所有元素。

请删除以下行:

var count = listNumbers.Count;

在两个foreach循环之后立即添加完全相同的行。

或者,由于您只引用该变量一次,您可以完全删除上面的count变量,然后用以下内容替换最后一个Console.WriteLine:

Console.WriteLine("Count of elements in list: " + listNumbers.Count);

答案 1 :(得分:0)

简单地改变:

Console.WriteLine("Count of elements in list: " + count);

Console.WriteLine("Count of elements in list: " + listNumbers.Count);

在添加新项目之前,您正在计算集合中的项目。要获得更新的计数列表,您需要在添加项目后调用listNumbers.Count功能。