clines[i]
的长度为69
我已初始化index = 50
代码:
string substr = clines[i].Substring(index, clines[i].Length);
现在我想要从索引50
到69
的子字符串
但我得到的是异常
ArgumentOutOfRangeException:索引和长度必须引用一个位置 在字符串中。参数名称:长度
为什么我得到这个例外?
答案 0 :(得分:5)
代码中出现错误的直接原因是index
+ clines[i].Length
不得超过实际字符串的长度clines[i].Length
,这就是为什么你会遇到错误的原因每个非零index
。
尝试删除最后一个参数(如果你想从index
和开始直到结尾获取子字符串):
string substr = clines[i].Substring(index);
编辑:两个参数的(罗嗦)替代
string substr = clines[i].Substring(index, clines[i].Length - index);
请注意,最后一个参数是子串的长度,而不是原始的长度。
答案 1 :(得分:1)
在C#中,第二个参数表示要采用的段的长度,而不是您希望段扩展到的索引。
另外,如果你想要正确的字符串部分 - 你可以不用第二个参数。
clines[i].Substring(50, 19);