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 

 

posted @ 2022-06-24 09:30  过往云烟吧  阅读(59)  评论(0)    收藏  举报