我正在尝试学习某些在线课程中的c#编程,以帮助完善我的知识。事实证明这是极具挑战性的。我似乎认为我理解,然后,当我坐下来练习练习时,我经常感到难过。我倾向于喜欢这样,因为它迫使我学习如何研究和解决我们出现的问题 - 对我而言,我通常都会这样学习。
话虽如此,但我似乎无法理解一些障碍。如果我想看看它们,我会得到实际练习的答案,但我不想这样做 - 因为我觉得我的学习方式很少。
我真的不想分享任务是什么,因为我不想帮助解决它 - 而且我认为任何试图帮助我的人都不需要知道这一点。
在下面的代码中,我想帮助理解实际发生的事情。我知道,我知道,这听起来非常普遍,但我太新了,不知道如何恰当地表达我的问题。
我想我的问题可以归结为:为什么我在' listNumbers'列表显示零?
我的逻辑是:
我要求用户输入用连字符分隔的输入。 我把那个输入并在连字符处拆分成一个字符串数组。 我创建一个空列表。 我循环遍历字符串数组的每个元素,转换为int32,并添加到列表中。 我放了一个计数器来查看它循环的次数 - 根据最初输入的数量准确显示。 我使用第二个计数器遍历列表中的每个元素,以查看它循环的次数 - 这似乎也可以根据最初输入的数量准确显示。
尽管如此,我对列表中元素的计数显示为零 - 就像列表中没有元素一样。
怎么可能?
有人可以解释一下为什么列表中的元素数量显示为零?
非常感谢你们。
(290<<2)=1160
答案 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功能。