2016-08-23 110 views
-2

我的,我将项目添加到列表中的一段代码,如下所示:遇到问题与名单

 If surname.Count < (noofcompetitors - 1) Then 
      surname.Add(txtSurname.Text) 
     Else 
      This sequence ends (not actual code) 

noofcompetitors值是5,这意味着我应该进入5名,这partion的代码结束。然而,我必须输入6个名字,当我运行时:

 For Each name As String In surname 
      Console.WriteLine(name) 
     Next 

我得到5个名字。有谁知道我可以如何解决这个问题,以便我输入五个名称并将五个名称保存到列表中?如果您有任何疑问,请询问。

注意:这不是一个重复的问题。

+1

else语句中的内容是什么?该代码只会在第6次尝试中出现,如果您打印的是该信息,则只会在您尝试添加第6个项目时才会打印。把断点和步骤通过代码。 –

+0

发布的答案是正确的:如果列表中有4个名字,那么它不会添加第5个:4不小于(5-1)。多数民众赞成什么调试帮助找到:逻辑错误 – Plutonix

回答

1

不太懂应该有5名或6,但我认为你不应该1 If surname.Count < (noofcompetitors - 1) Then

凡循环将负(假设noofcompetitors 5):

surname.Count = 0 | noofcompetitors - 1 = 4 :: true 
surname.Count = 1 | noofcompetitors - 1 = 4 :: true 
surname.Count = 2 | noofcompetitors - 1 = 4 :: true 
surname.Count = 3 | noofcompetitors - 1 = 4 :: true 
surname.Count = 4 | noofcompetitors - 1 = 4 :: false 

那导致您最后的数据永远不会被添加

+0

最终的结果是5个名字是正确的,但我仍然必须输入6个名字 – MyArmsFellOff

+0

@MyArmsFellOff我不认为你张贴的块是真正控制你必须输入多少个名字,此块控制如何添加输入的数据。根据我的回答,这是一个预期的行为,通过6个输入的名字获得5个名字 –