[英]How can I limit the length of a string to 150 characters?
我尝试了以下方法:
var a = description.Substring(0, 150);
但是,如果描述的长度小于 150 个字符,则会出现问题。 那么是否有另一种方法可以将长度限制为 150,当字符串长度为 20 时不会出错。
var a = description == null
? string.Empty
: description.Substring(0, Math.Min(150, description.Length));
var a = description.Substring(0, Math.Min(150, description.Length));
只需抓取150个字符的子字符串,或整个字符串,以较短者为准。
请尝试以下扩展方法
public static string LimitTo(this string data, int length) {
return (data == null || data.Length < length)
? data
: data.Substring(0, length);
}
字符串长度属性适用于C#:
[StringLength(150)]
public string MyProperty { get; set; }
我想你真的想要这个。
public static string LimitTo(this string data, int length) {
return (data == null || data.Length <= length) // Less than or equal to
? data
: data.Substring(0, length);
}
如果您的环境支持您使用以下方法,那将是一件好事。 (正如@ christian-cody建议的那样。)
[StringLength(150)]
public string MyProperty { get; set; }
您必须包含以下命名空间才能使用它。
using System.ComponentModel.DataAnnotations;
每个人似乎都过于复杂,所有你需要的只是简单
var a = description;
if (description.length > 150) a = description.Substring(0, 150);
有时你只需要思考问题。
字符串是不可变的,即使您可以创建一个按照您想要的方式工作的实例,只要您为变量分配另一个值,它就是string
类型的不同实例。
如果你想要一个最多包含150个字符的string
属性,那么写一个属性来检查setter中的值,如果超过150个字符则抛出异常。
如果你想要一个string
参数到一个最多150个字符的方法,那么在方法的顶部,检查它是否超过150个字符,如果是,则抛出异常。
var a = description.Substring(0, description.Length > 150 ? 150 : description.Length);
从 C# 8.0 开始,我们可以使用Range 运算符并得到以下结果:
var x = description[..150];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.