我一直都需要它,而且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相关问答推荐

DI通过对象的接口而不是实际类型来解析服务

SeriLog LogConext.PushProperty在ASP.NET MVC 5中不能使用OWIN中间件

.NET模拟具有泛型返回类型的方法

如何通过在后台预加载流项来优化流迭代的性能?

在`MAUI`应用中使用Android`MediaPlayer`的`prepare`方法只在发布模式下和在物理设备上崩溃

无法使用 int.Parse 从字符串转换值

查找 2 个已知值之间的字符串

在 WP7 中将 List 转换为 ObservableCollection

每 X 秒执行一次指定函数

ASP.NET MVC:隐藏字段值不会使用 HtmlHelper.Hidden 呈现

在 .NET C# 中存储加密密钥的最佳方式

为什么 .NET 中没有可序列化 XML 的字典?

如何右对齐 DataGridView 列中的文本?

Int 到字节数组

什么版本的 .NET 附带什么版本的 Windows?

向 .NET 应用程序添加脚本功能

当我们按下 Enter 键时启动的 WPF 文本框命令

Linq to SQL - 返回前 n 行

是 C# 中的 bool 读/写原子

通过反射获取公共静态字段的值