范围“^4”和“^4..”之间有什么区别?

Bee*_*man -1 c# range

我试图从我在程序中使用的字符串中获取子字符串,如下所示:

mystring.Substring(mystring.Length - 4)
Run Code Online (Sandbox Code Playgroud)

Visual Studio IntelliSense 建议我使用索引和范围运算符,如下所示:

mystring[^4..]
Run Code Online (Sandbox Code Playgroud)

我浏览了这里的文档,似乎使用 justmystring[^4]就可以正常工作。为什么 IntelliSense 建议使用..其中的额外内容,添加它有什么好处吗?

gun*_*171 6

^4是一个索引,表示单个索引号,恰好距离数组末尾 4 处。这本质上与执行相同mystring[0],只是根据长度动态计算出数字。

^4..是一个range,这意味着(并包括)倒数第四个索引和数组末尾之间的所有内容。

var input = "abcdefghijk";
Console.WriteLine(input[^4]);
Console.WriteLine(input[^4..]);
Run Code Online (Sandbox Code Playgroud)

这打印

H
海吉克