4

我有一个这样的字符串:“/AuditReport”它被分配给变量rep。如果我输入

var r = rep.SysName.Remove(1, 1);

它返回“/uditReport”而不是所需的“AuditReport”,即它不删除斜线。我怎么能删除它?

4

8 回答 8

18

.NET 中的字符串索引是从零开始的。的文档Remove说明第一个参数是“开始删除字符的从零开始的位置”

string r = rep.SysName.Remove(0, 1);

或者,在我看来, usingSubstring更具可读性:

string r = rep.SysName.Substring(1);

或者,您可以使用TrimStart,具体取决于您的要求。(但是,请注意,如果您的字符串以多个连续的斜杠开头,TrimStart则将删除所有斜杠。)

string r = rep.SysName.TrimStart('/');
于 2011-11-25T08:22:13.090 回答
6

尝试:

var r = rep.SysName.Remove(0, 1);
于 2011-11-25T08:21:24.190 回答
4

你需要:

var r = rep.SysName.Remove(0, 1);

第一个参数是开始,第二个是要删除的字符数。(1,1) 将删除第二个字符,而不是第一个。

于 2011-11-25T08:21:36.077 回答
2

索引是从 0 开始的,因此您要删除第二个字符。相反,尝试

var r = rep.SysName.Remove(0, 1);
于 2011-11-25T08:22:45.837 回答
0

是怎么回事"/AuditReport".Replace("/","")

于 2011-11-25T08:23:34.727 回答
0

.NET 中的字符串索引从零开始,因此:

string r = rep.SysName.Remove(0, 1);

您还可以使用:

string r = rep.SysName.Substring(1);
于 2011-11-25T08:23:39.220 回答
0

你必须写var r = rep.SysName.Remove(0, 1);。我猜你有 VisualBasic 背景(像我 :-))、C# 中的数组、字符串等以索引开头,0而不是1在其他一些语言中。

于 2011-11-25T08:24:08.793 回答
0

如果你正在处理 a Uri,你可以这样做:

var route = uri.GetComponents(UriComponents.Path, UriFormat.UriEscaped);

例如,它将返回api/report而不是/api/report.

于 2019-05-02T09:37:51.347 回答