C#8.0索引和范围
链接:https://docs.microsoft.com/zh-cn/dotnet/csharp/tutorials/ranges-indexes
运行环境:.NET Core3.1
static void Main(string[] args)
{
int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7 };
Console.WriteLine(arr[^1]); // 3
Console.WriteLine("-----------");
foreach (var item in arr[..])
{
Console.WriteLine($"item:{item}");
}
Console.WriteLine("-----------");
foreach (var item in arr[2..])
{
Console.WriteLine($"item:{item}");
}
Console.WriteLine("-----------");
foreach (var item in arr[..2])
{
Console.WriteLine($"item:{item}");
}
}
/*
7
-----------
item:1
item:2
item:3
item:4
item:5
item:6
item:7
-----------
item:3
item:4
-----------
item:3
item:4
item:5
item:6
item:7
-----------
item:1
item:2
*/
通过在索引器里使用 "^" 加上目标索引进行取值,0时为数组的长度,当索引为n时,^n与 arr[sequence.Length - n] 相同。
单个维度数组同时支持索引和范围。 多维数组则不支持。 多维数组的索引器具有多个参数,而不是一个参数。 交错数组(也称为数组的数组)同时支持范围和索引器。
Range类

把Range类当参数用
int start = 0; Range r = start..(start + 10); Console.WriteLine($"start:{r.Start} End:{r.End}"); //start:0 End:10 arr[r]等同于arr[0..10]//包含索引0不包含10

浙公网安备 33010602011771号