C#:替换<;中的文本;炭直到>;烧焦

C#:替换<;中的文本;炭直到>;烧焦,c#,C#,因此,我试图替换字符中的所有文本,因为有颜色标签等 我刚刚试过这个代码: while (text.Contains("<") || text.Contains(">")) { text = text.Remove(text.IndexOf("<"), text.IndexOf(">")); } while(text.Contains(“”) { text=text.Remove(text.IndexOf(“”); } 还有为什么这个代码不起作用。 谢谢你的帮助

因此,我试图替换字符中的所有文本,因为有颜色标签等

我刚刚试过这个代码:

while (text.Contains("<") || text.Contains(">"))
{
    text = text.Remove(text.IndexOf("<"), text.IndexOf(">"));
}
while(text.Contains(“”)
{
text=text.Remove(text.IndexOf(“”);
}
还有为什么这个代码不起作用。
谢谢你的帮助

函数
Remove
采用两个参数startIndexcount。其中,count是要删除的字符数

public string Remove(
    int startIndex,
    int count
)
您需要计算从
的距离,并将该距离用作
删除的第二个参数。代码应该如下所示:

while (text.Contains("<") || text.Contains(">"))
{
    var start = text.IndexOf("<");
    var end = text.IndexOf(">") + 1;
    var dist = end - start;
    text = text.Remove(start, dist);
}
while(text.Contains(“”)
{
var start=text.IndexOf(“”+1;
var dist=结束-开始;
text=text.Remove(开始,距离);
}

注意:您应该添加一些额外的检查,确保
按预期顺序发生,并且它们发生的次数相同

阅读文档。我认为第二个参数是要删除的长度,而不是最后一个索引。请提供一个-并为您尝试执行的操作提供更多上下文。如果您正在处理XML,使用XML API几乎肯定是一个更好的选择。int wheretostop=text.IndexOf(“>”)-text.IndexOf(“什么不起作用?请提供输入和预期的输出。为您获取输入[Console]保存这是输入