我想为String该类编写一个扩展方法,以便如果输入字符串 to 比提供的长度长N,则只显示第一个N字符。
String
N
这是它的样子:
public static string TruncateLongString(this string str, int maxLength) { if (str.Length <= maxLength) return str; else //return the first maxLength characters }
我可以使用什么String.*()方法仅获取 的第一个N字符str?
String.*()
str
public static string TruncateLongString(this string str, int maxLength) { if (string.IsNullOrEmpty(str)) return str; return str.Substring(0, Math.Min(str.Length, maxLength)); }
在 C# 8 或更高版本中,还可以使用Range来使其更简洁:
public static string TruncateLongString(this string str, int maxLength) { return str?[0..Math.Min(str.Length, maxLength)]; }
可以使用表达式体进一步减少:
public static string TruncateLongString(this string str, int maxLength) => str?[0..Math.Min(str.Length, maxLength)];
注意 null 条件运算符 ( ?) 用于处理strnull 的情况。这取代了显式空值检查的需要。
?