为什么在查找子字符串时获取ArgumentOutOfRangeException

Sur*_*dey 0 c#

长度clines[i]69 我已初始化index = 50

码:

string substr = clines[i].Substring(index, clines[i].Length);
Run Code Online (Sandbox Code Playgroud)

现在我想要索引的子串5069 但是我得到了异常

ArgumentOutOfRangeException:索引和长度必须引用字符串中的位置.参数名称:长度

为什么我得到这个例外?

Dmi*_*nko 5

代码中错误的直接原因是index+ clines[i].Length必须不超过实际字符串的长度,这就是clines[i].Length为什么你要为每个非零都有错误的原因index.

尝试下探的最后一个参数(如果你想从启动子index直至年底):

 string substr = clines[i].Substring(index);
Run Code Online (Sandbox Code Playgroud)

编辑:带有两个参数的(罗嗦)替代方案是

 string substr = clines[i].Substring(index, clines[i].Length - index);
Run Code Online (Sandbox Code Playgroud)

请注意,最后一个参数是子字符串的长度,而不是原始字符串的长度.