使用string.Substring()作为链的一部分

Iai*_*ser 5 c# string chaining

我试图操纵一个字符串而不会产生一个大问题并将其分散到多行,所以我使用一些链接来实现这一点.我的问题是,如何在此上下文中string.Substring()删除字符串的最后一个字符?

在PHP中,我可以传递一个负数作为参数(即substr(-1))来实现这一点,但显然这不是C#的工作方式.

mystring = mystring.Replace('_', ' ').Substring(???);

另外,上面使用的技术的实际名称是什么?我总是把它称为回调链,但我现在认为回调链是完全不同的.

请注意我想避免:

mystring = mystring.Replace('_', ' ');
mystring = mystring.Substring(0, mystring.Length - 1);
Run Code Online (Sandbox Code Playgroud)

提前感谢您的时间和善意的考虑.

伊恩

谢谢你的答案.有趣的是,人们可以对字符串操作和其他"竞争"语言有如此强烈的意见:)

Hen*_*man 13

你可以编写一个Extension方法RightStrip().您不能为负起始位置重载SubString.

static string RightStrip(this string s, int n)
{
    return s.Substring(0, s.Length - n);
}


string s = "Hello World!";
s = s.Replace('e', 'a').RightStrip(1);
Run Code Online (Sandbox Code Playgroud)