C# 如何将字符串长度限制为150个字符?

C# 如何将字符串长度限制为150个字符?,c#,C#,我尝试了以下方法: var a = description.Substring(0, 150); 但是,如果描述长度小于150个字符,则会出现问题。那么有没有其他方法可以将长度限制为150,当字符串长度为20时不会出现错误 var a = description == null ? string.Empty : description.Substring(0, Math.Min(150, description.Length)); 只需获取150个字符的子

我尝试了以下方法:

var a = description.Substring(0, 150);
但是,如果描述长度小于150个字符,则会出现问题。那么有没有其他方法可以将长度限制为150,当字符串长度为20时不会出现错误

var a = description == null 
        ? string.Empty 
        : 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);
}
publicstaticstringlimito(此字符串数据,int-length){
返回(数据==null | |数据。长度<长度)
?数据
:数据。子字符串(0,长度);
}

字符串是不可变的,即使您可以创建一个按您希望的方式工作的实例,只要您为变量分配另一个值,它也将是类型为
字符串的另一个实例

如果希望
字符串
属性的最大长度为150个字符,请编写一个属性,在其中检查setter中的值,如果超过150个字符,则引发异常


如果你想给一个最多150个字符的方法添加一个
string
参数,那么在该方法的顶部,检查它是否超过150个字符,如果超过150个字符,则抛出一个异常。

我想你真的想要这个

var a = description.Substring(0, description.Length > 150 ? 150 : description.Length);
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);
}
publicstaticstringlimito(此字符串数据,int-length){

return(data==null | | data.Length字符串长度属性适用于C#:


如果您的环境支持您使用下面的方法,这将是一件好事

您必须包含以下名称空间才能使用它

using System.ComponentModel.DataAnnotations;

每个人似乎都在把这件事复杂化,你所需要的只是

var a = description;
if (description.length > 150) a = description.Substring(0, 150);

有时你只需要考虑一下这个问题。

我在WPF的ViewModel中对它进行了测试,但它不适用于文本框。文档中提到了ASP.NET。可能它仅用于此类应用程序中。
[StringLength(150)]
public string MyProperty { get; set; }
using System.ComponentModel.DataAnnotations;
var a = description;
if (description.length > 150) a = description.Substring(0, 150);