簡體   English   中英

如何將字符串的長度限制為 150 個字符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM