假设我有一个字符串:

"34234234d124"

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

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


当前回答

你所要做的就是…

String result = mystring.Substring(mystring.Length - 4);

其他回答

就是这样:

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 var = "12345678";

var = var[^4..];

// var = "5678"

这是一个索引运算符,字面意思是“从end(^4)到end(..)取最后四个字符”

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