[问题] 索引超出范围…参数index

楼主: reccaX (渺小的正义)   2015-11-04 15:54:17
各位前辈大家好,我是刚学习C#的新手,没有其他程式基础。
所以可能很多基础的东西不是很了解,还请前辈多多指教。
目前写老师交代的作业时遇到一个问题,我想要用windowsform的textbox输入4个数字
然后和随机出来的数字进行猜数字的XAXB比对,但是会跳出:
索引超出范围。必须为非负数且小于集合的大小。 参数名称 index
搜寻网络上这问题好像大部分出现在阵列,可是我依照老师的范例是用list去执行,
同时再产生一个随机4位数字的int list进行比对就不会出现这个问题,
目前推测是Textbox输入的数字有问题,想请问问题可能出在哪里?
以下是CODE:
public List<int> UserAnswer = new List<int>();
int UserAns = 0;
if (textBox1.Text.Length < 4)//判断玩家输入数字数量
{
}
else
{
UserAns = int.Parse(textBox1.Text);
UserAnswer.Add(UserAns);
}
Textbox有用MaxLength限制4,
我的想法是在位数小于4的时候不做任何事情,
不小于4的时候将这输入转换成int整数,并且加入list
作者: bantime (景)   2015-11-04 16:29:00
出问题的code应该不在这里你把其他部分贴上来看看
作者: J002 (阿里山 我来了XD~)   2015-11-04 17:07:00
推测有问题的应该是 UserAns = int.Parse(textBox1.Text);假设输入0123 -> UserAns就会变成123这应该是跟您底下想要执行的code有冲突然后您的UserAnswer就只有123一个元素,Count = 1然后就会跳出索引超出范围的问题@@"
楼主: reccaX (渺小的正义)   2015-11-04 17:18:00
感谢两位 我大概ㄢ理解了 我试着处理看看
作者: TameFoxx (foxx)   2015-11-04 18:46:00
你用subString的方法,分别将四个数字存入然后可以用contains的方法判断答案中有无正解若有择判断索引值是否相同,就不必包两回圈了哦对了,用分割字串可能比substring更方便
作者: Litfal (Litfal)   2015-11-05 12:11:00
这个题目用字串处理比较轻松,免转数字,Parse或Regex检查

Links booklink

Contact Us: admin [ a t ] ucptt.com