0

このコードは正しい結果を提供します。

Locations[i] = Locations[i].TrimStart(@"..\Config\Locations".ToCharArray());

しかし、これではありません

String loc = Properties.Settings.Default.pathTo + @"\Config\Locations";
Locations[i] = Locations[i].TrimStart(loc.ToCharArray());

動作しません。エスケープする必要があると思いますProperties.Settings.Default.pathToが、その方法がわかりません。

4

3 に答える 3

1

TrimStart文字列の先頭から個々の文字を削除しますが、文字列は削除しません。言い換えれば、あなたの例はすべてのドット、スラッシュ、'C's、'o's、'n's などを最初から削除します - それらは必ずしもソース文字列の順序である必要はありません。

私はあなたがこのようなものが欲しいと思います:

if(Locations[i].StartsWith(loc);
    Locations[i] = Locations[i].Substring(loc.Length);
于 2013-03-13T00:50:41.523 に答える
0

ToCharArrayつまり、これらの文字が削除されることを理解していただければ幸いですin any order(間に他の文字がない限り)...

あなたは本当にこのようなことをしたかったかもしれません(私は間違っているかもしれませんが)

    public static string StripStart(this string text, string value, bool ignoreCase = false)
    {
        // if(text.EndsWith...
        if (text.StartsWith(value, ignoreCase, CultureInfo.InvariantCulture))
            return text.Substring(value.Length);
        return text;
    }

これは非常に単純ですが、うまくいくはずです

それが役に立てば幸い

于 2013-03-13T00:57:35.843 に答える
-1

NSGagaは正しいと思います。お役に立てば幸いです

public static string StripStart(this string text, string value, bool ignoreCase = false)
{
    if (text.StartsWith(value, ignoreCase, CultureInfo.InvariantCulture))
        return text.Substring(value.Length);
    return text;
}
于 2013-03-13T01:07:51.640 に答える