我尝试了以下方法:
var a = description.Substring(0, 150);
然而,如果描述的长度小于150个字符,则会出现问题。那么,有没有另一种方法可以限制长度为150个字符,并且在字符串长度为20时不会出错。
我尝试了以下方法:
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; }
如果您的环境支持以下方法,那将是很好的。(如@christian-cody所建议的。)
[StringLength(150)]
public string MyProperty { get; set; }
你需要包含以下命名空间才能使用它。
using System.ComponentModel.DataAnnotations;
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);
}
字符串是不可变的,即使您可以创建一个按照您想要的方式工作的实例,一旦您将另一个值分配给变量,它将成为类型 string
的另一个实例。
如果您想要一个最大长度为150个字符的string
属性,请编写一个属性,在setter中检查该值,并在超过150个字符时引发异常。
如果您想要一个最大长度为150个字符的string
参数到方法中,请在方法顶部检查是否超过150个字符,如果是,则抛出异常。
var a = description.Substring(0, description.Length > 150 ? 150 : description.Length);
似乎每个人都在过度复杂化这个问题,你只需要简单地
var a = description;
if (description.length > 150) a = description.Substring(0, 150);
从C# 8.0开始,我们可以利用范围运算符,最终得到以下结果:
var x = description[..150];