c# 8.0的range语法糖,^和..操作符

本质上是新类型System.Index和System.Range取数组范围的语法糖,其中…表示范围的意思,^是 Hat 运算符,表示fromEnd从后面开始。

System.Range operator ..(Index start = 0, Index end = ^0);

var array = new int[] { 1, 2, 3, 4, 5 };
var slice1 = array[2..^3];    // array[new Range(2, new Index(3, fromEnd: true))]
var slice2 = array[..^3];     // array[Range.EndAt(new Index(3, fromEnd: true))]
var slice3 = array[2..];      // array[Range.StartAt(2)]
var slice4 = array[..];       // array[Range.All]

参考:
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/ranges
https://www.cnblogs.com/ittranslator/p/13800588.html

你可能感兴趣的:(c#)