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 回答