我试过如下:我怎样才能限制一个字符串不超过一定的长度?
var Title = LongTitle.Substring(0,20)
这工作但如果LongTitle小于20的长度如何限制字符串最多20个字符,但如果他们只是例如不得到一个错误5个字符长?
我试过如下:我怎样才能限制一个字符串不超过一定的长度?
var Title = LongTitle.Substring(0,20)
这工作但如果LongTitle小于20的长度如何限制字符串最多20个字符,但如果他们只是例如不得到一个错误5个字符长?
确保长度不会超过LongTitle
(null
检查跳过):
int maxLength = Math.Min(LongTitle.Length, 20);
string title = LongTitle.Substring(0, maxLength);
这可以变成扩展方法:
public static class StringExtensions
{
/// <summary>
/// Truncates string so that it is no longer than the specified number of characters.
/// </summary>
/// <param name="str">String to truncate.</param>
/// <param name="length">Maximum string length.</param>
/// <returns>Original string or a truncated one if the original was too long.</returns>
public static string Truncate(this string str, int length)
{
if(length < 0)
{
throw new ArgumentOutOfRangeException("length", "Length must be >= 0");
}
if (str == null)
{
return null;
}
int maxLength = Math.Min(str.Length, length);
return str.Substring(0, maxLength);
}
}
哪些可以作为:
string title = LongTitle.Truncate(20);
如果字符串长度大于20,则使用20,否则使用长度。
string title = LongTitle.Substring(0,
(LongTitle.Length > 20 ? 20 : LongTitle.Length));
学习使用Math.Min来达到这个目的。 – Chris
最短的:
可以使用StringLength属性。这样,不会存储比指定长度更长(或更短)的字符串。
[StringLength(20, ErrorMessage = "Your Message")]
public string LongTitle;
检查字符串的长度,如果是超过20个字符截断,否则保留原样。 – Tim