C# Substring(…)方法给出异常
我想从richtextbox中保留一个字符串到另一个字符串strTotal。然后我想把它分成两个子串,就像第一部分和第二部分一样,中间有一个索引,比如midIndex 然后我想改变前半部分的一些值,并加入后半部分。最后显示给richTextBox 为此,我使用了以下代码: 对于我的最后一次调试: rtxtQueryPan.Text.Length=53; midIndex=45C# Substring(…)方法给出异常,c#,.net,string,substring,C#,.net,String,Substring,我想从richtextbox中保留一个字符串到另一个字符串strTotal。然后我想把它分成两个子串,就像第一部分和第二部分一样,中间有一个索引,比如midIndex 然后我想改变前半部分的一些值,并加入后半部分。最后显示给richTextBox 为此,我使用了以下代码: 对于我的最后一次调试: rtxtQueryPan.Text.Length=53; midIndex=45 //string Totalqueryy = rtxtQueryPan.Text; string firstHalf
//string Totalqueryy = rtxtQueryPan.Text;
string firstHalf = rtxtQueryPan.Text.Substring(0, midIndex-2);
string secondHalf = rtxtQueryPan.Text.Substring((midIndex- 1), (rtxtQueryPan.Text.Length - 1)); // THIS LINE SHOWS ERROR
string duplicateFirstHalf = firstHalf;
firstHalf += " " + clColumnNames.Text + ",";
rtxtQueryPan.Text = firstHalf+secondHalf;
在代码的第三行中说:
索引和长度必须引用字符串中的位置。
参数名称:长度
我已经检查了长度、midIndexvalue等,但没有发现任何线索。C#的。子字符串函数的第二个参数是长度,而不是位置
因此,您可能希望编写以下代码:
rtxtQueryPan.Text.Substring(midIndex-1, (rtxtQueryPan.Text.Length-1) - midIndex);
另外,length参数是可选的,而不是您应该在案例中提供的,因为您希望包含字符串的其余部分。因此,你也可以写:
rtxtQueryPan.Text.Substring(midIndex-1);
C#的.Substring
函数的第二个参数是长度,而不是位置
因此,您可能希望编写以下代码:
rtxtQueryPan.Text.Substring(midIndex-1, (rtxtQueryPan.Text.Length-1) - midIndex);
另外,length参数是可选的,而不是您应该在案例中提供的,因为您希望包含字符串的其余部分。因此,你也可以写:
rtxtQueryPan.Text.Substring(midIndex-1);
子字符串
只能在所作用字符串的范围内工作。这里,rtxtQueryPan.Text
指的是RichTextBox
中的文本,它比字符串中当前保存的文本长。记住Substring
的参数是起始位置和长度
您需要(rtxtQueryPan.Text.Length-1)-midIndex
作为第二个参数
我希望这会有所帮助。子字符串只能在所作用字符串的范围内工作。这里,rtxtQueryPan.Text
指的是RichTextBox
中的文本,它比字符串中当前保存的文本长。记住Substring
的参数是起始位置和长度
您需要(rtxtQueryPan.Text.Length-1)-midIndex
作为第二个参数
我希望这能有所帮助。问题是你在中途抓住第二根弦,说我想要整根弦。如果使用子字符串,则第二个pramater是子字符串的长度。这应该可以解决它。
string secondHalf=rtxtQueryPan.Text.Substring((midIndex-1),
(rtxtQueryPan.Text.Length-1-midIndex))代码>问题是你从中间抓住第二个字符串,然后说我想要整个字符串。如果使用子字符串,则第二个pramater是子字符串的长度。这应该可以解决它。
string secondHalf=rtxtQueryPan.Text.Substring((midIndex-1),
(rtxtQueryPan.Text.Length-1-midIndex))
索引和长度的值是什么?使用子字符串的字符串是什么?IIRC,子字符串在c中的工作方式#给出.Substring(startIndex,length)。所以您希望第二行是rtxtQueryPan.Text.Substring((midIndex-1),(rtxtQueryPan.Text.Length-1-midIndex));“我相信这应该行得通,不过我可能把索引弄乱了。”德科耶好心地标记一些东西作为答案?对不起@DavidPfeffer。感谢您的提醒。索引
和长度
的值是多少?您使用的子字符串是什么?IIRC,子字符串在c中的工作方式#您给出了.Substring(startIndex,length)。所以您希望第二行是rtxtQueryPan.Text.Substring((midIndex-1),(rtxtQueryPan.Text.Length-1-midIndex));“我相信这应该行得通,不过我可能把索引弄乱了。”德科耶好心地标记一些东西作为答案?对不起@DavidPfeffer。谢谢提醒。函数是子字符串(小写“s”):)哦,是的,谢谢。我在这个小编辑里把它删掉了。如果现在没有智能感知,我们该怎么办!?再次感谢:]函数是子字符串(小写“s”):)哦,是的,谢谢。我在这个小编辑里把它删掉了。如果现在没有智能感知,我们该怎么办!?再次感谢:]