一尘不染

如何截断.NET字符串?

c#

我想截断一个字符串,使其长度不超过给定值。我正在写数据库表,并希望确保所写的值满足列数据类型的约束。

例如,如果我可以编写以下代码,那就太好了:

string NormalizeLength(string value, int maxLength)
{
    return value.Substring(0, maxLength);
}

不幸的是,这引起了一个异常,因为maxLength通常超出了string的边界value。当然,我可以编写类似以下的函数,但我希望这样的东西已经存在。

string NormalizeLength(string value, int maxLength)
{
    return value.Length <= maxLength ? value : value.Substring(0, maxLength);
}

执行此任务的难以捉摸的API在哪里?有一个吗?


阅读 209

收藏
2020-05-19

共1个答案

一尘不染

Truncate() 不幸的是,字符串没有方法。您必须自己编写这种逻辑。但是,您可以做的是将其包装在扩展方法中,这样就不必到处复制它:

public static class StringExt
{
    public static string Truncate(this string value, int maxLength)
    {
        if (string.IsNullOrEmpty(value)) return value;
        return value.Length <= maxLength ? value : value.Substring(0, maxLength); 
    }
}

现在我们可以写:

var someString = "...";
someString = someString.Truncate(2);
2020-05-19