c#TrimEnd删除多于需要的?

tty*_*ty6 1 .net c# windows registry

这是调试器.我不明白为什么TrimEnd删除's'字符. 在TrimEnd之前 TrimEnd()之后 TrimEnd之后 有什么建议?

recPath是类中的私有字符串.码:

        recPath = "";
        recursiveFindPathRoot(node);
        string[] argv = Regex.Split(recPath, "\\\\");

        //Current root path
        string rootdat = argv[0];

        //Current lastkey
        string valdat = argv[argv.Length - 3];
        string lastkey = valdat + "\\\\";

        string[] val_dat =  Regex.Split( valdat , "--");

        //Getting value and data
        string value = val_dat[0];
        string data = val_dat[1];
        string caption = value;

        CollectDataInput("Please edit selected key", caption, out value, out data);

        recPath = recPath.TrimEnd(lastkey.ToCharArray());
        recPath = recPath.Replace(@"\\", @"\");
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

问题是你要lastkey.ToCharArray()作为要修剪的字符列表传入.包含字符s,因此,sFonts被修整为好.(同样反斜杠.)来自以下文档TrimEnd:

TrimEnd方法从当前字符串中删除trimChars参数中的所有尾随字符.当在字符串末尾遇到不在trimChars中的第一个字符时,修剪操作将停止.

我怀疑你期望将字符用作单个字符串.

如果您只是想lastKey从最后删除recPath,您可以使用:

if (recPath.EndsWith(lastKey))
{
    recPath = recPath.Substring(0, recPath.Length - lastKey.Length);
}
Run Code Online (Sandbox Code Playgroud)