我想截断一个字符串,使其长度不超过给定值。我正在写数据库表,并希望确保所写的值满足列数据类型的约束。
例如,如果我可以编写以下代码,那就太好了:
string NormalizeLength(string value, int maxLength) { return value.Substring(0, maxLength); }
不幸的是,这引起了一个异常,因为maxLength通常超出了string的边界value。当然,我可以编写类似以下的函数,但我希望这样的东西已经存在。
maxLength
value
string NormalizeLength(string value, int maxLength) { return value.Length <= maxLength ? value : value.Substring(0, maxLength); }
执行此任务的难以捉摸的API在哪里?有一个吗?
Truncate() 不幸的是,字符串没有方法。您必须自己编写这种逻辑。但是,您可以做的是将其包装在扩展方法中,这样就不必到处复制它:
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);