C#の文字列からスラッシュを削除する方法

私はこのような文字列を持っています: "/ AuditReport" 変数repに割り当てられます。 入力した場合

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

"AuditReport"の代わりに "/ uditReport"を返します。 すなわちスラッシュを除去しない。どうすれば削除できますか?

4
参照のために、/はスラッシュで、\は円記号です。
追加された 著者 Greg Hewgill,

7 答え

.NETの文字列インデックスはゼロベースです。 削除 のドキュメントには、最初の引数が "文字の削除を開始するゼロベースの位置"

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

または、 サブストリング を使用すると、わかりやすくなります。

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

または、 TrimStart を使用することもできますあなたの要求に応じて。 (しかし、文字列が複数の連続したスラッシュで始まる場合、 TrimStart はそれらをすべて削除します)。

string r = rep.SysName.TrimStart('/');
17
追加された
うん、わかるよ。誰が最初だったのか理解しようとしています:)
追加された 著者 Andrew Orsich,
アッバスが最初で、彼は私の投票を得た:)
追加された 著者 Andrew Orsich,
注:.Netのほとんどの(すべてではないにしても)インデックスは、文字列だけでなく、ゼロベースです。
追加された 著者 Polyfun,
LukeHありがとう!
追加された 著者 Liker777,

試してください:

var r = rep.SysName.Remove(0, 1);
6
追加された
笑、4つの同じ答え:) +最初の1つ。
追加された 著者 Andrew Orsich,
ありがとうございました)
追加された 著者 Liker777,

必要なもの:

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

最初のパラメータは開始で、2番目のパラメータは削除する文字数です。 (1,1)は、最初の文字ではなく、2番目の文字を削除します。

4
追加された

インデックスは0ベースであるため、2番目の文字を削除します。代わりに、

var r = rep.SysName.Remove(0, 1);
2
追加された

var r = rep.SysName.Remove(0、1); を記述する必要があります。私は、VisualBasicのバックグラウンド(私のようなものです:-))、配列、文​​字列などはC#で始まり、 1 の代わりに 0 のインデックスで始まります。

0
追加された

"/ AuditReport" .Replace( "/"、 "")について

0
追加された
それはテキスト内のすべてのスラッシュを置き換え、OPは先頭のスラッシュを削除したいだけでした。
追加された 著者 Fischermaen,

.NETの文字列インデックスはゼロベースなので、

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

また次のものを使用することもできます:

string r = rep.SysName.Substring(1);
0
追加された