C#8.0中的索引与范围功能介绍

 更新时间:2022年01月28日 10:18:06   作者:痕迹g  
这篇文章介绍了C#8.0中的索引与范围功能,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

C#8.0中, 新增了一个索引与范围的功能, 为访问序列中的单个元素或范围提供了一种简洁的语法。

在没有提供索引功能之前, 我们需要访问序列中的某个元素, 我们可以利用下标或者部分函数进行获取元素的数据, 如:获取数组中最后一个元素:

            string[] arr = new string[]
            {
                "冰晶凤凰",  
                "影流之主",  
                "德玛西亚",  
                "艾瑞利亚",  
                "寒冰射手"   
            };              

            var str1 = arr.Last(); //寒冰射手
            var str2 = arr[arr.Length - 1];  //寒冰射手

介绍索引

在使用的的过程中, 我们可以直接在数组集合类的下标中,直接声明索引, 或者间接声明Index 类型的索引, 关于索引的使用方法, 如下:

             string[] arr = new string[]
            {
                "冰晶凤凰",  //^5   
                "影流之主",  //^4
                "德玛西亚",  //^3
                "艾瑞利亚",  //^2  = ...
                "寒冰射手"   //^1  =arr.Length-1
            };              //^0  =arr.Length  

            //使用索引 ^1 获取最后一个元素
            Console.WriteLine($"output:{arr[^1]}"); //output:寒冰射手
            Console.WriteLine("-------End-------");

            //创建索引 Index index=^1 获取最后一个元素
            Index index = ^1;
            Console.WriteLine($"output:{arr[index]}"); //output:寒冰射手
            Console.WriteLine("-------End-------");

介绍范围

8.0中, 提供了Range语法, 可以通过简单的语法声明, 即可获取到序列中的范围内所有元素, 而范围中,也支持索引的声明方式来创建范围, 使用示例如下:

## 下标中直接声明范围进行获取元素序列

             //使用范围 [0..2] 获取索引0和1的元素,不包含末尾索引2的元素
            string[] newarr = arr[0..2];  //冰晶凤凰、影流之主
            foreach (var r in newarr)
            {
                Console.WriteLine($"output:{r}");
            }
            Console.WriteLine("-------End-------");

            string[] index_range_xarr = arr[0..^1]; //指定开始和结束范围,  从0开始到倒数第二个
            foreach (var r in index_range_xarr)
            {
                Console.WriteLine($"output:{r}");  //输出: 冰晶凤凰、影流之主、德玛西亚、艾瑞利亚
            }
            Console.WriteLine("-------End-------");

 ## 单独创建Range进行获取元素序列

            Range range = 0..2; //单独声明范围
            string[] newarr = arr[range];  //冰晶凤凰、影流之主
            foreach (var r in newarr)
            {
                Console.WriteLine($"output:{r}"); //输出:冰晶凤凰、影流之主
            }
            Console.WriteLine("-------End-------");

 ## 不指定开始与结束的范围 (默认获取所有元素序列)

            string[] index_default_arr = arr[..];// 写法相当于 arr[0..^0],  获取arr中所有的元素
            foreach (var r in index_default_arr)
            {
                Console.WriteLine($"output:{r}");  //输出: 冰晶凤凰 、影流之主、德玛西亚、艾瑞利亚、寒冰射手
            }

 ## 指定开始或者结束的范围

             string[] index_end_arr = arr[..^0];// 写法相当于 arr[0..^0] , 获取arr中所有的元素
            foreach (var r in index_end_arr)
            {
                Console.WriteLine($"output:{r}"); //输出: 冰晶凤凰 、影流之主、德玛西亚、艾瑞利亚、寒冰射手
            }
            Console.WriteLine("-------End-------");


            string[] index_left_arr = arr[^2..];// 写法相当于 arr[^2..^0], 获取末尾的最后两个元素
            foreach (var r in index_left_arr)
            {
                Console.WriteLine($"output:{r}");  //输出: 艾瑞利亚 、寒冰射手
            }
            Console.WriteLine("-------End-------");

注:范围的结束如果有强制声明, 如 [0..2] , 那么获取的元素序列, 最终只是下标为 0和1 的元素, 不包含2的元素, 也就是说“末尾”不包含在范围内。

到此这篇关于C#8.0中的索引与范围功能的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#字符串数组转换为整形数组的方法

    C#字符串数组转换为整形数组的方法

    这篇文章主要介绍了C#字符串数组转换为整形数组的方法,涉及C#数组遍历与转换的相关技巧,需要的朋友可以参考下
    2015-06-06
  • C# 扩展方法的使用

    C# 扩展方法的使用

    这篇文章主要介绍了C# 扩展方法的使用,帮助大家更好的理解和学习c#编程语言,感兴趣的朋友可以了解下
    2020-12-12
  • Winform中进行MD5加密的实例

    Winform中进行MD5加密的实例

    下面小编就为大家带来一篇Winform中进行MD5加密的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • C#使用非托管代码直接修改字符串的方法

    C#使用非托管代码直接修改字符串的方法

    在string方法中,如ToUpper等字符串操作方法,都会产生一个新的字符串,这样增大了运行开支。一个替代方案是通过非托管代码直接操作字符串。如替代ToUpper方法:
    2013-07-07
  • C# PropertyGrid使用案例详解

    C# PropertyGrid使用案例详解

    这篇文章主要介绍了C# PropertyGrid使用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C#中static静态变量的用法实例

    C#中static静态变量的用法实例

    这篇文章主要介绍了C#中static静态变量的用法,实例分析了C#中static静态变量的含义及具体用法,非常具有参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • C# 常用日期时间函数(老用不熟)

    C# 常用日期时间函数(老用不熟)

    C# 常用日期时间函数(老用不熟) ,需要的朋友可以参考下。
    2009-09-09
  • C#异常执行重试的实现方法

    C#异常执行重试的实现方法

    这篇文章主要介绍了C#异常执行重试的一种实现方法,重试模式可以用poll替代,通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • C#的WEBBROWSER与JS交互小结

    C#的WEBBROWSER与JS交互小结

    这篇文章主要介绍了C#的WEBBROWSER与JS交互方法,详细讲述了与页面标签的交互以及数据交互的方法,需要的朋友可以参考下
    2014-11-11
  • 详解C#如何手动改变自制窗体的大小

    详解C#如何手动改变自制窗体的大小

    这篇文章主要为大家详细介绍了在C#中如何实现手动改变自制窗体的大小,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03

最新评论