小编典典

String 类中的什么方法只返回前 N 个字符?

all

我想为String该类编写一个扩展方法,以便如果输入字符串 to 比提供的长度长N,则只显示第一个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


阅读 79

收藏
2022-06-21

共1个答案

小编典典

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 的情况。这取代了显式空值检查的需要。

2022-06-21