16 c#
我尝试了以下方法:
var Title = LongTitle.Substring(0,20)
Run Code Online (Sandbox Code Playgroud)
如果LongTitle的长度小于20,则无效.如何将字符串限制为最多20个字符,但如果它们只是例如5个字符,则不会出错?
Zbi*_*iew 31
确保长度不超过LongTitle(null检查跳过):
int maxLength = Math.Min(LongTitle.Length, 20);
string title = LongTitle.Substring(0, maxLength);
Run Code Online (Sandbox Code Playgroud)
这可以转换为扩展方法:
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(nameof(length), "Length must be >= 0");
}
if (str == null)
{
return null;
}
int maxLength = Math.Min(str.Length, length);
return str.Substring(0, maxLength);
}
}
Run Code Online (Sandbox Code Playgroud)
哪个可以用作:
string title = LongTitle.Truncate(20);
Run Code Online (Sandbox Code Playgroud)
Age*_*ire 14
最短的,:
var title = longTitle.Substring(0, Math.Min(20, longTitle.Length))
Run Code Online (Sandbox Code Playgroud)
string title = new string(LongTitle.Take(20).ToArray());
Run Code Online (Sandbox Code Playgroud)
如果字符串Length大于20,请使用20,否则使用Length.
string title = LongTitle.Substring(0,
(LongTitle.Length > 20 ? 20 : LongTitle.Length));
Run Code Online (Sandbox Code Playgroud)