此代码提供正确的结果,
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
必须被转义,但我不知道该怎么做。
答案 0 :(得分:1)
TrimStart
从字符串的开头删除单个字符,它不会删除字符串。换句话说,您的示例将从头开始删除所有点,斜杠,'C'
s,'o'
s,'n'
等等 - 它们不一定必须在顺序中您的源字符串。
我想你想要这样的东西:
if(Locations[i].StartsWith(loc);
Locations[i] = Locations[i].Substring(loc.Length);
答案 1 :(得分: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;
}
这非常简单,但应该有效
希望有所帮助
答案 2 :(得分:-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;
}