目前,我有三个不同的时间运行以下代码,只需更改变量即可背靠背:
txtCourseName.LoadFile(strRootLocation + "\subject\" + strSubject + "\" + "\class\" + cmbCourses.SelectedItem, RichTextBoxStreamType.PlainText)
aData = txtCourseName.Text
i = aData.IndexOf("<h3 class=""panel-title"">") + "<h3 class=""panel-title"">".Length
j = aData.IndexOf("</h3>") - i
txtCourseName.Text = aData.Substring(i, j)
每次运行时,正在使用的富文本框都会更改,aData会更改为bData,cData等,以及i
和j
正在编制索引的数据改变了。它将在前两次迭代中正常运行,将它应该返回到文本框中,但是在第三次迭代中,它为System.ArgumentOutOfRangeException
提供了Length cannot be less than zero
的附加信息。
我唯一可能导致这种情况的假设是,我在下面包含的第三次迭代只能找到一个7个字母的长字符串,这会引起一些数学问题。
我不知道如何解决这个问题。
txtCourseNumber.LoadFile(strRootLocation + "\subject\" + strSubject + "\" + "\class\" + cmbCourses.SelectedItem, RichTextBoxStreamType.PlainText)
cData = txtCourseNumber.Text
i = cData.IndexOf("Course Number: </b>") + "Course Number: </b>".Length
j = cData.IndexOf("</li>") - i
txtCourseNumber.Text = cData.Substring(i, j)
aData - “英语4”
bData - “在这里插入一些非常长的课程描述”
cData - “10045C”