架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2071|回复: 2

[资料] C# 8.0 语法特性:新运算符系统索引

[复制链接]
发表于 2022-7-11 19:35:19 | 显示全部楼层 |阅读模式
需求:定义一个集合,我们需要获取集合的最后一个元素,代码通常是 array[array.Length - 1] 这种写法,C# 8.0 引入了一个新的索引表达式,意思是“从最后”。该功能将引入一个新的一元前缀“hat”运算符。

回顾

C# 8.0 新特性知识点讲解
https://www.itsvse.com/thread-9355-1-1.html

【转】.NET 6 新特性 Enumerable.Chunk()
https://www.itsvse.com/thread-10286-1-1.html
系统索引

C# 无法从末尾索引集合,但大多数索引器使用“从开始”的概念,或执行“长度 - i”表达式。我们引入了一个新的索引表达式,意思是“从最后”。该功能将引入一个新的一元前缀“hat”运算符。它的单个操作数必须可转换为System.Int32. 它将被降低到适当的System.Index工厂方法调用中。


string[] words = new string[]
{
                // index from start    index from end
    "The",      // 0                   ^9
    "quick",    // 1                   ^8
    "brown",    // 2                   ^7
    "fox",      // 3                   ^6
    "jumps",    // 4                   ^5
    "over",     // 5                   ^4
    "the",      // 6                   ^3
    "lazy",     // 7                   ^2
    "dog"       // 8                   ^1
};              // 9 (or words.Length) ^0
有了新的语法,我们可以很简单的获取集合的最后一个元素对象,代码如下:

QQ截图20220711193230.jpg

索引与 0 相同 sequence[0]。索引与 ^0 相同 sequence[sequence.Length]。表达式sequence[^0]确实会引发异常,就像sequence[sequence.Length]这样。对于任何数字n,索引^n都与相同sequence.Length - n

Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
QQ截图20220711193406.jpg

参考资料:

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/ranges
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/ranges-indexes


(完)




上一篇:【实战】.NET/C# 使用 UDP 发送和接受数据
下一篇:用powershell进入本地组策略编辑器,并修改保存
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-7-13 22:59:44 | 显示全部楼层
学习一下。。。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-8-11 15:16:06 | 显示全部楼层
我来学习学习,希望楼主可以的
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-19 23:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表