在多行文本框中输入多行“姓名=成绩”格式的数据,要求输出成绩最高的学生的姓名。 代码如下: string[] lines = txtScore.Lines; //Textbox的Lines属性 string maxname = " "; int maxscore =-1; foreach (string line in lines) //读取Lines里边的每一行 { string[]remove=line.Split('='); //对每一行进行分割 string name = remove[0]; string strscore = remove[1]; int score = Convert.ToInt32(strscore); if (score > maxscore) { maxscore = score; maxname = name; } } MessageBox.Show(string.Format("第一名是{0},最高分为{1}", maxname, maxscore)); 问题代码是: string strscore = remove[1]; 显示是索引超出了数组的界限 解决方法(由于前几天发帖子发错了地方,没人回复,不过最终还是找到了问题所在点。个人觉得把这个帖子跟大家共享一下,可以让初学者少走几步弯路,希望能帮到大家。让各位大神见笑了): 文本框中数据:第一行:tom=300 第二行:jerry=200 第三行:lucy=100 第四行:无意中键入了空格。而此时Lines里边会有这一行空的数据。然后用Split分割第四行数据,只能得到只有一个元素的数组,即分割得到的数组的长度为1,此时只有remove[0],所以,string strscore=remove[1]里边是没有数据的。所以会显示索引超出了数组的界限。 我觉得在以后找错的时候,我们只需要设置个断点在出错的地方,看里边的数据怎么来的,这样会更有效率。 |
)Z2JUU2YGS99N~~6Y2UX@PN.jpg (7.45 KB, 下载次数: 19)
当在文本框中输入图片中的内容的时候
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |