0

我想将一个字符串保留为来自 Richtextbox 的另一个字符串 strTotal。然后我想通过中间索引将它分成两个子字符串,比如 firstPart 和 secondPart:midIndex。

然后我想在上半场更改一些值并加入下半场。最后展示给richTextBox。

为此,我使用了以下代码:

对于我的最后一次调试:

rtxtQueryPan.Text.Length = 53; midIndex = 45;

 //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;

在代码的第 3 行中说:

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

我检查了长度、midIndexvalue 等。但没有发现任何线索。

4

3 回答 3

4

C#.Substring函数的第二个参数是长度,而不是位置。

因此,您可能想编写以下代码:

rtxtQueryPan.Text.Substring(midIndex-1, (rtxtQueryPan.Text.Length-1) - midIndex);

此外,长度参数是可选的,而不是您应该在您的情况下提供的东西,因为您希望包含字符串的其余部分。因此,您也可以编写:

rtxtQueryPan.Text.Substring(midIndex-1);
于 2012-12-05T14:24:32.717 回答
1

Substring只能在被作用的字符串的范围内工作。在这里,rtxtQueryPan.Text指的是RichTextBox其中的文本比字符串中当前包含的文本更长。请记住 的参数Substring是起始位置和长度。

你想(rtxtQueryPan.Text.Length-1) - midIndex作为第二个参数。

我希望这有帮助。

于 2012-12-05T14:26:02.337 回答
1

问题是你从中途抓住第二根弦并说我想要整个弦。如果您使用子字符串,则第二个参数是您的子字符串的长度。这应该解决它。 string secondHalf = rtxtQueryPan.Text.Substring((midIndex- 1), (rtxtQueryPan.Text.Length - 1-midIndex));

于 2012-12-05T14:27:45.627 回答