我一直都需要它,而且Trim()、TrimStart()和TrimEnd()函数没有将字符串作为输入,这让我一直感到沮丧.你对一个字符串调用EndsWith(),看看它是否以另一个字符串结尾,但是如果你想把它从末尾删除,你必须做一些子字符串黑客来完成(或者调用remove()并祈祷它是唯一的实例……)

为什么.NET中缺少此基本功能?第二,任何关于实现这一点的简单方式的建议(最好不是正则表达式路由……)

推荐答案

TrimEnd()(以及其他修剪方法)接受要修剪的字符,但不接受字符串.如果你真的想要一个可以修剪整个字符串的版本,那么你可以创建一个扩展方法.例如

public static string TrimEnd(this string input, string suffixToRemove, StringComparison comparisonType = StringComparison.CurrentCulture)
{
    if (suffixToRemove != null && input.EndsWith(suffixToRemove, comparisonType)) 
    {
        return input.Substring(0, input.Length - suffixToRemove.Length);
    }

    return input;
}

然后可以像调用内置方法一样调用它.

.net相关问答推荐

在计算Total毫秒时,.NET TimeSpan类中是否存在错误?

NuGet 兼容与计算框架(Xamarin 和 .NET 6)

无法加载文件或程序集 不支持操作. (来自 HRESULT 的异常:0x80131515)

如何为多种文件类型设置 FileSystemWatcher 过滤器?

单击关闭按钮时隐藏表单而不是关闭

如何摆脱 VS2008 中的目标程序集不包含服务类型错误消息?

我可以使用 UriTemplate 将非字符串传递给 WCF RESTful 服务吗?

XmlNode 值与内部文本

如何使用c#从excel文件中读取数据

是否可以更改 Winforms 组合框以禁用输入?

您可以在 C# 代码中捕获本机异常吗?

测试没有预期的异常

C# 测试字符串是否为整数?

当程序员说针对接口而不是对象的代码时,他们是什么意思?

如何在 RabbitMQ 中设置重试次数?

如何使用 EPPlus 设置 XLSX 单元格宽度?

例外:不支持 URI 格式

C# ListView 列宽自动

MVVM 没有意义吗?

C#/.NET 中仅命名空间的类可见性?