索引
c#8.0中的索引和范围为访问序列中的单个元素或范围提供了简洁的语法
System.Index 类型可用于编制索引。 可从 int 创建一个从开头开始计数的索引,也可使用前缀 ^ 运算符 (C#) 创建一个从末尾开始计数的索引。
^0
表示序列的length,所以^1
才是序列的最后一个数*,所以如果直接使用a[^0]
效果等同于a[a.Length]
,会抛出异常。
Index i1 = 2;
Index i2 = ^3;
int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine($"{a[i1]},{a[i2]}");
// Output: 3,7
范围
System.Range 类型,它包含两个 Index 值,一个用于开头一个用于结尾,可以使用 x…y 范围表达式 (C#) 进行编写。 然后可以使用 Range 编制索引,以便生成一个切片。范围指定范围的开始和末尾 ,包括此范围的开始,但不包括此范围的末尾,如下:
var slice = a[i1..i2];
foreach (var item in slice)
{
Console.Write($"{item},");
}
// Output: 3,4,5,6,