C#8.0中的索引和范围

C#8.0中的索引和范围

索引

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,

参考

What’s new in C# 8.0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章