Indexing 子字符串索引超出范围,即使索引<;字符串长度

Indexing 子字符串索引超出范围,即使索引<;字符串长度,indexing,substring,bounds,Indexing,Substring,Bounds,我试图从我拥有的一大串数据中获取一个子字符串,但当我使用这一行时: string output = datastring.substring(0, datastring.Length-1) 它告诉我索引超出了范围(“索引和长度必须引用字符串中的位置”) 这工作得很好,因此输出字符串打印出来的内容与数据字符串相同 while (index < datastring.Length) { outputstring += datastring[index]

我试图从我拥有的一大串数据中获取一个子字符串,但当我使用这一行时:

string output = datastring.substring(0, datastring.Length-1)
它告诉我索引超出了范围(“索引和长度必须引用字符串中的位置”)

这工作得很好,因此输出字符串打印出来的内容与数据字符串相同

while (index < datastring.Length)
        {
            outputstring += datastring[index];
            index++;
        }
while(索引
但是,这给了我一个错误:

if (index + 10 < datastring.Length)
{
      if (datastring.substring(index, index+10) == "name")
      {
            outputstring += " found instance of 'name'";

      }      

}
if(索引+10
它说索引超出了范围。当我已经检查到索引+10在范围内时,第二个“if”语句中的索引怎么可能超出范围?

它是
.substring(offset,length)
,而不是
。substring(startOffset,endOffset)

而不是

datastring.substring(index, index+10)
使用

datastring.substring(index, 10)