假设我有一个字符串:

"34234234d124"

我想要得到这个字符串的最后四个字符,这个字符串是“d124”。我可以使用SubString,但它需要几行代码,包括命名一个变量。

是否有可能在c#的一个表达式中得到这个结果?


当前回答

public static string Last(this string source, int tailLength)
{
  return tailLength >= source.Length ? source : source[^tailLength..];
}

其他回答

mystring.Substring(Math.Max(0, mystring.Length - 4)); //how many lines is this?

如果你确定字符串的长度至少是4,那么它甚至更短:

mystring.Substring(mystring.Length - 4);

使用Substring实际上是非常简短和可读的:

 var result = mystring.Substring(mystring.Length - Math.Min(4, mystring.Length));
 // result == "d124"

就是这样:

int count = 4;
string sub = mystring.Substring(mystring.Length - count, count);

你可以使用扩展方法:

public static class StringExtension
{
    public static string GetLast(this string source, int tail_length)
    {
       if(tail_length >= source.Length)
          return source;
       return source.Substring(source.Length - tail_length);
    }
}

然后调用:

string mystring = "34234234d124";
string res = mystring.GetLast(4);
string mystring = "34234234d124";
mystring = mystring.Substring(mystring.Length-4)