我想为String类编写一个扩展方法,以便如果输入字符串比提供的长度N长,则只显示前N个字符。
这是它的样子:
public static string TruncateLongString(this string str, int maxLength)
{
if (str.Length <= maxLength)
return str;
else
//return the first maxLength characters
}
什么字符串.*()方法我可以使用只得到str的前N个字符?
部分为了总结(不包括LINQ解决方案),这里有两个一行程序,解决了int maxLength允许负值的警告和空字符串的情况:
Substring方式(来自Paul Ruane的回答):
public static string Truncate(this string s, uint maxLength) =>
s?.Substring(0, Math.Min(s.Length, (int)maxLength));
移除方式(来自kbrimington的回答):
public static string Truncate(this string s, uint maxLength) =>
s?.Length > maxLength ? s.Remove((int)maxLength) : s;