这篇文章介绍了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#8.0中的索引与范围功能介绍
基础教程推荐
- C# windows语音识别与朗读实例 2023-04-27
- C# List实现行转列的通用方案 2022-11-02
- C#控制台实现飞行棋小游戏 2023-04-22
- C#类和结构详解 2023-05-30
- ZooKeeper的安装及部署教程 2023-01-22
- unity实现动态排行榜 2023-04-27
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- 一个读写csv文件的C#类 2022-11-06
- C# 调用WebService的方法 2023-03-09
- winform把Office转成PDF文件 2023-06-14