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