Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串修剪开始_C#_String - Fatal编程技术网

C# 字符串修剪开始

C# 字符串修剪开始,c#,string,C#,String,此代码提供正确的结果 Locations[i] = Locations[i].TrimStart(@"..\Config\Locations".ToCharArray()); 但不是这个 String loc = Properties.Settings.Default.pathTo + @"\Config\Locations"; Locations[i] = Locations[i].TrimStart(loc.ToCharArray()); 不起作用。我认为必须对Properties.Se

此代码提供正确的结果

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
进行转义,但我不知道如何进行转义。

TrimStart
从字符串的开头删除单个字符,但不会删除字符串。换句话说,您的示例将从一开始就删除所有点、斜线、
'C'
s、
'o'
s、
'n'
s等,它们不一定必须按照源字符串的顺序

我想你想要这样的东西:

if(Locations[i].StartsWith(loc);
    Locations[i] = Locations[i].Substring(loc.Length);

我希望您理解
ToCharArray
意味着这些字符将以任何顺序删除
(只要中间没有其他字符)

你可能真的想做这样的事情(尽管我可能错了)

这是非常简单的,但应该有效


希望它有帮助

我认为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;
}

什么是正确的结果?你收到了什么?始终提供解决问题所需的尽可能多的信息。正确的结果是目录位置的文件夹,如果我使用第二个codeProperties.Settings.Default.pathTo是C:\dir,如果您同意answe,请向该答案添加注释,而不是逐字重新发布答案。
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;
}