“索引”和“范围”运算符 - 它们是什么?

Kai*_*ant 16 c# visual-studio visual-studio-2017

我正在调整 C# 的代码样式设置,我注意到这些选项:

“首选索引运算符:”

// Prefer:
var ch = value[^1];

// Over:
var ch = value[value.Length - 1];
Run Code Online (Sandbox Code Playgroud)

“首选范围运算符:”

// Prefer:
var sub = value[1..^1];

// Over:
var sub = value.Substring(1, value.Length - 2);
Run Code Online (Sandbox Code Playgroud)

我正在努力寻找有关这些的任何参考。在这种情况下,“索引运算符”和“范围运算符”是什么意思?你如何使用它们?

小智 27

我想使用索引和范围运算符的主要优点是它们的简单性。

索引运算符^

索引运算符的^意思是从末尾开始。因此,array[^1]意味着从末尾开始的第一个元素。它类似于常见的索引,array[1]表示从一开始就有一个元素。索引^0意味着结束。

范围运算符..

正如您在上面的示例中所示,使用范围运算符创建子字符串非常方便。范围运算符也可用于创建子数组。例如,
var array = new {1, 2, 3, 4, 5, 6, 7}; var range = array[2..5]
以下是有关上述主题的 Microsoft 文档:索引和范围